public class ArrayListCode {
public static void main(String[] args) {
String[] arr =new String[]{"admin"};
Class clazz = arr.getClass();
Class componentType = clazz.getComponentType();
if (componentType !=null) {
System.out.println("-->" + componentType.getName());
}
List arrayList =new ArrayList<>();
arrayList.add("23");
arrayList.add("a");
arrayList.add("b");
arrayList.add("93");
arrayList.add("ew");
arrayList.add("ag");
arrayList.add("tg");
arrayList.remove(1);
arrayList.remove(3);
for (int i =0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i));
}
List copyList =new ArrayList<>();
// List list = new ArrayList<>();
CopyOnWriteArrayList list =new CopyOnWriteArrayList<>();
list.add("a");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
String str = (String) iterator.next();
list.remove(str);
iterator.remove();
}
System.arraycopy(arrayList,0,copyList,0,6);
for (int i =0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
//ArrayList remove坑点
@Test
public void removeTest() {
List integers =new ArrayList<>(5);
integers.add(1);
integers.add(2);
integers.add(2);
integers.add(4);
integers.add(5);
/**
* foreach 底层实现了Iterator modCount != expectedModCount
* 所以这样会报错java.util.ConcurrentModificationException
*/
// for (Integer i:integers) {
// integers.remove(i);
// }
/**
* 1 2 5
*/
for (int i =0; i < integers.size(); i++) {
if (integers.get(i)%2==0){
integers.remove(i);
}
}
System.out.println(integers);
}
/**
* List.remove()有两个,一个 public E remove(int index),一个是public boolean remove(Object o) ,那下面的结果是什么:
* public boolean remove(Object o) 是List的父类Collection的
*/
@Test
public void testRemove(){
List integers =new ArrayList<>(5);
integers.add(1);
integers.add(2);
integers.add(3);
integers.add(4);
integers.add(5);
System.out.println(integers);
integers.remove(1);
System.out.println(integers);
}
/**
* Arrays.asList()的add方法没有实现所以直接add会报错,
* 解决方案:可以用new ArrayList<>(Arrays.asList("a","b")); 包一层
*/
@Test
public void testRemove3(){
List list = Arrays.asList("a","b");
// List list = new ArrayList<>(Arrays.asList("a","b"));
list.add("c");
System.out.println(list);
}
}
ArrayList踩坑记录
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 音频相关: 1)Vivo X9 发现使用usb安装时,提示无法解析包,需在setting中禁用install ru...
- 最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误。 情景 一个活动信息需要审批,审批之...
- Android 4.3(API Level 18)开始引入Bluetooth Low Energy(BLE,低功耗...