有序:存取的顺序一致
有索引:可以通过索引操作元素
可重复:存储的元素可以重复
java
package mylist;
import java.util.ArrayList;
import java.util.List;
public class A01_LIstDemo1 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//void add(int index,E element)
//细节:原来索引上的元素会依次往后排
list.add(1,"qqq");
//E remove(int Index)
//删除元素
//在调用方法的时候,如果出现了重载现象
//优先调用,实参跟形参类型一致的那个方法
String remove = list.remove(2);
System.out.println(remove);
System.out.println(list);
//修改指定索引处的元素,返回被修改的值
list.set(1,"www");
System.out.println(list);
//返回指定索引元素
String s = list.get(1);
System.out.println(s);
}
}
List集合的遍历方式
迭代器遍历,列表迭代器遍历,增强for遍历,Lambda表达式遍历,普通for循环(因为List集合存在索引)
java
package mylist;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class A02_ListDemo2 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//1.迭代器
// Iterator<String> it = list.iterator();
// while (it.hasNext()){
// String next = it.next();
// System.out.println(next);
// }
//2.增强for
//下面的变量s,其实就是一个第三方的变量而已
//在循环的过程中,依次表示集合中的每一个元素
// for (String s : list) {
// System.out.println(s);
// }
//3.Lambda表达式
//forEach方法的底层其实就是一个循环遍历,依次得到集合中的每一个元素
//并把每一个元素传递给下面的accept方法
//accept方法的形参s,依次表示集合中的每一个元素
// list.forEach( s-> System.out.println(s));
//4.普通for循环
// for (int i = 0; i < list.size(); i++) {
// String s = list.get(i);
// System.out.println(s);
// }
//5.列表迭代器
// ListIterator<String> it = list.listIterator();
// while (it.hasNext()){
// String str = it.next();
// if ("bbb".equals(str)){
// it.add("qqq");
// }
// }
// System.out.println(list);
// }
}