List集合
List
List集合的特点有序、可重复、有索引。
List remove重载方法的细节
List的remove方法有两个

第一个方法按照值删除元素,第二个方法按照索引下标删除元素。
- 案例一
public static void main(String[] args) {
List<Integer> integers = new ArrayList<Integer>();
integers.add(1);
integers.add(2);
integers.add(3);
integers.add(4);
System.out.println(integers);
integers.remove(1);
System.out.println(integers);
}
运行结果
[1, 2, 3, 4]
[1, 3, 4]
- 案例二
public static void main(String[] args) {
List<Integer> integers = new ArrayList<Integer>();
integers.add(1);
integers.add(2);
integers.add(3);
integers.add(4);
System.out.println(integers);
integers.remove(Integer.valueOf(1));
System.out.println(integers);
}
运行结果
[1, 2, 3, 4]
[2, 3, 4]
结论:重载方法优先调用实参和形参一致的方法
List遍历
List<String> str = new ArrayList<String>();
str.add("aaa");
str.add("bbb");
str.add("ccc");
通用的三种方式
- Iterator遍历,因为Collection是List的父类,Collectoin又实现了Iterator接口。
List<String> str = new ArrayList<String>();
str.add("aaa");
str.add("bbb");
str.add("ccc");
- 增强for循环
//增强for循环
for (String s : str) {
System.out.println(s);
}
- Lambda表达式(匿名内部类)
//匿名内部类
str.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
//Lambda表达式
str.forEach(s->System.out.println(s) );
独有的两种方式
- 普通for循环,因为List有下标索引
//普通for循环
for (int i = 0; i < str.size(); i++) {
System.out.println(str.get(i));
}
- 列表迭代器
public interface ListIterator<E> extends Iterator<E> {...}
//列表迭代器
final ListIterator<String> listIterator = str.listIterator();
while(listIterator.hasNext()){
String s = listIterator.next();
if("bbb".equals(s)){
//相比于Iterator,ListIterator可以直接添加元素
listIterator.add("ddd");
}
}
浙公网安备 33010602011771号