ArrayList接口常用方法:
1、add(Object element): 向列表的尾部添加指定的元素。
ArrayList<String> l1 = new ArrayList<>();//创建一个ArrayList l1
l1.add("aaa");//在l1中添加字符串aaa
2、size(): 返回列表中的元素个数。
System.out.println(l1.size());//输出l1中元素个数
3、get(int index): 返回列表中指定位置的元素,index从0开始。
if(l1!=null&&l1.size()!=0&&l1.isEmpty()==false) {
for(int i = 0;i<l1.size();i++) {
System.out.println(l1.get(i));//输出l1中元素
}
}
4、add(int index, Object element): 在列表的指定位置插入指定元素。
5、set(int i, Object element): 将索引i位置元素替换为元素element并返回被替换的元素。
6、clear(): 从列表中移除所有元素。
7、isEmpty(): 判断列表是否包含元素,不包含元素则返回 true,否则返回false。
8、contains(Object o): 如果列表包含指定的元素,则返回 true。
//判断上述ArrayList中是否出现过取值为fff的字符串
System.out.println("是否出现字符串fff:" + l1.contains("fff"));
9、remove(int index): 移除列表中指定位置的元素,并返回被删元素。
//删除掉上述ArrayList中所有取值为ccc的字符串
//[1]创建一个循环,遍历集合中所有的元素
if(l1 != null && l1.size() != 0) {
for(int i = 0; i < l1.size(); i++) {
//[2]判断当期前取得的字符串和字符串"ccc"之间的关系
if("ccc".equals(l1.get(i))) {
//[3]通过下标干掉当前元素
l1.remove(i); //注意:在干掉当前元素的时候,后面的元素会向前补齐,下一次判断还是看当前位,不是下一位
//[4]回退一位,中和下一次的i++
i--;
}
}
System.out.println("删除字符串ccc之后的集合:" + l1);
}
10、remove(Object o): 移除集合中第一次出现的指定元素,移除成功返回true,否则返回false。
11、iterator(): 返回按适当顺序在列表的元素上进行迭代的迭代器。
12、indexOf(),lastIndexOf()方法找到指定字符串第一次出现的下标位和最后一次出现的下标位
//找到上述ArrayList中,取值为aaa的字符串第一次出现的下标位和最后一次出现的下标位
System.out.println("字符串aaa第一次出现的下标:" + l1.indexOf("aaa"));
System.out.println("字符串aaa最后一次出现的下标:" +l1.lastIndexOf("aaa"));
13、subList()方法截取制定位置的元素
//截取上述ArrayList中下标为3-6之间的子元素形成新集合
List<String> l2 = l1.subList(3, 6); //List<String> l2 = new ArrayList<>(); 在多态写法中,编译时类型除了可以使父类类型之外,还可以是父级接口类型
System.out.println("截取的子集合:" + l2);
14、retainAll()方法,表示计算ls1集合与ls2集合之间的公共部分,将公共部分存储在ls1当中
/*
* 总结retainAll()方法
* 例:ls1.retainAll(ls2)
* 表示计算ls1集合与ls2集合之间的公共部分,将公共部分存储在ls1当中
* 返回值:
* 如果ls1集合内容发生变化,返回true
* 如果ls1集合内容没有发生变化,返回false
*/
System.out.println(ls1.retainAll(ls2));
System.out.println(ls1);
15、trimToSize方法
ArrayList所说没有用的值并不是null,而是ArrayList每次增长会预申请多一点空间,1.5倍+1,而不是两倍
这样就会出现当size() = 1000的时候,ArrayList已经申请了1200空间的情况
trimToSize 的作用只是去掉预留元素位置,就是删除多余的200,改为只申请1000,内存紧张的时候会用到.
//通过trimToSize()方法能够通知JVM回收elementData中剩余的空余空间
l1.trimToSize(); //size=12 elementData.length=12
// l1.add("bbb"); //size=13 elementData.length=18
16、ensureCapacity()方法,指定集合对象内部数组的长度
//使用ensureCapacity()方法,指定集合对象内部数组的长度
l2.ensureCapacity(200);