首页 > 代码库 > 复习java基础第四天(集合)

复习java基础第四天(集合)

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:Person类
 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 }
练习代码2:TestArrayList类(主程序)