List集合
-
目录
- List集合的特性
- List的实现类
- List集合的常用操作
- Lis集合t使用的一个例子
-
List集合的特性
- 内容有序存放,可以重复。
- 可以任意个数存放,而不像数组那样在定义时声明size,受size的束缚。
- 每个值有索引(这个和数组一样),按存入的顺序分配索引,使用时可以按索引值操作。
List图示
-
List的实现类
-
List接口常用的实现类1——ArrayList
- 基于对象数组,查询速度快,增删改慢
List<String> list = new ArrayList<String>();
-
List接口常用的实现类2——LinkedList
- 基于双向链表,增删速度快,查询稍慢
List<Integer> list2 = new LinkedList<Integer>();
-
ArrayList与LinkedList相同点
- 所具有的方法,方法名形同,处理的结果相同
- 存取元素的顺序相同
- 线程不安全
-
List集合的常用操作(增删改查)
- 添加元素,单次添加一个元素——add(value);
list.add("腾讯");
list.add("阿里");
- 添加元素,单词添加一个集合——addAll(new list);
list3.addAll(list);
- 删除元素,单次删除指定元素——remove(index);
list.remove(1);
list2.remove(1);
- 修改元素,单词修改一个已经知道索引号的元素——set(index,new value);
list.set(0, "腾讯成都");
list2.set(0, 4);
- 获得元素,也就是查出一个元素,根据索引查出——get(value);
list.get(0);
list.get(1);
以上所有也可以通过遍历来操作,但是在用迭代器遍历的时候,删除元素用迭代器的remove方法。
-
List集合的一个例子
1 import java.util.ArrayList; 2 import java.util.LinkedList; 3 import java.util.List; 4 5 public class TestList { 6 7 public static void main(String[] args) { 8 9 List<String> list = new ArrayList<String>(); 10 List<Integer> list2 = new LinkedList<Integer>(); 11 List<String> list3 = new ArrayList<String>(); 12 13 //增 14 list.add("腾讯"); 15 list.add("阿里"); 16 list2.add(1); 17 list2.add(5); 18 list3.addAll(list); 19 System.out.println("向集合添加元素的结果:"); 20 show(list); 21 show(list2); 22 show(list3); 23 System.out.println("\n---------------------------------------------\n"); 24 25 //改 26 list.set(0, "腾讯成都"); 27 list2.set(0, 4); 28 System.out.println("修改集合元素后的结果:"); 29 show(list); 30 show(list2); 31 show(list3); 32 System.out.println("\n---------------------------------------------\n"); 33 34 //查 35 list.get(0); 36 list.get(1); 37 list2.get(0); 38 list2.get(1); 39 System.out.println("查询所有元素的结果:"); 40 show(list); 41 show(list2); 42 show(list3); 43 System.out.println("\n---------------------------------------------\n"); 44 45 //删 46 list.remove(1); 47 list2.remove(1); 48 System.out.println("删除部分元素后元素的结果:"); 49 show(list); 50 show(list2); 51 show(list3); 52 System.out.println("\n---------------------------------------------\n"); 53 } 54 55 56 public static void show( List list) {//遍历list并显示,为了方便这里用静态方法 57 for( int i = 0; i < list.size(); i++ ) { 58 System.out.print(list.get(i)+"\t"); 59 } 60 } 61 }