List 代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引
List 允许使用重复元素,可以通过索引来访问指定位置的集合元素。
List 默认按元素的添加顺序设置元素的索引。
List 集合里添加了一些根据索引来操作集合元素的方法:
另外:
List 额外提供了一个 listIterator() 方法,该方法返回一个 ListIterator 对象,
ListIterator 接口继承了 Iterator 接口,提供了专门操作 List 的方法:
boolean hasPrevious() Object previous() void add()
ArrayList 和 Vector 是 List 接口的两个典型实现 区别:
1、Vector 是一个古老的集合,通常建议使用 ArrayList。
2、ArrayList 是线程不安全的,而 Vector 是线程安全的。
3、即使为保证 List 集合线程安全,也不推荐使用 Vector。
1 public class Person { 2 3 private String name; 4 private int age; 5 6 public String getName() { 7 return name; 8 } 9 public void setName(String name) { 10 this.name = name; 11 } 12 public int getAge() { 13 return age; 14 } 15 public void setAge(int age) { 16 this.age = age; 17 } 18 public Person(String name, int age) { 19 super(); 20 this.name = name; 21 this.age = age; 22 } 23 public Person(){} 24 @Override 25 public String toString() { 26 return "Person [name=" + name + ", age=" + age + "]"; 27 } 28 }
1 import java.util.ArrayList; 2 import java.util.Comparator; 3 import java.util.List; 4 5 public class TestArrayList { 6 public static void main(String []args){ 7 8 List list = new ArrayList(); 9 List list2 = new ArrayList(); 10 Person p1 = new Person("lisi007",15); 11 list.add(new Person("lisi003",12)); 12 list.add(new Person("lisi003",12)); 13 list.add(p1); 14 list.add(new Person("lisi005",10)); 15 list.add(new Person("lisi006",20)); 16 17 for(Object obj:list){ 18 System.out.println(obj); 19 } 20 21 System.out.println(); 22 list2.add(new Person("zhangsan",22)); 23 list2.add(new Person("zhangsan",23)); 24 list.addAll(2, list2); 25 list.add(3, p1); 26 // list.remove(1); 27 28 System.out.println(list.indexOf(p1)); 29 System.out.println(list.lastIndexOf(p1)); 30 31 for(Object obj:list){ 32 System.out.println(obj); 33 } 34 35 /* //遍历List方法1:调用iterator()方法 36 Iterator iterator = list.iterator(); 37 while(iterator.hasNext()){ 38 System.out.println(iterator.next()); 39 } 40 41 //遍历List方法2:增强for循环 42 for(Object obj:list){ 43 System.out.println(obj); 44 } 45 46 //遍历List方法3:for循环,利用get(int index) 47 for(int i=0;i<list.size();i++){ 48 System.out.println(list.get(i)); 49 } 50 //遍历List方法4: 51 ListIterator li = list.listIterator(); 52 while(li.hasNext()){ 53 System.out.println(li.next()); 54 } 55 */ 56 } 57 }