集合框架

1.集合中各接口之间的关系:

Collection(接口)→List(接口)→ArrayList(类)

                     →Queue(接口)→Deque(接口)→LinkedList(类)

                     →Set(接口) →HashSet(类)

                     →SortedSet(接口)→TreeSet(类)

Map(接口)→HashMap(接口)

                 →SortedMap(接口)→TreeMap(类)

比较:  ArrayList 和LinkedList:

            ArrayList为线性表,它是以动态数组的方式保存数据,数据的下标为自然数递增的,便于随机的访问和读取;

            LinkedList为链性表,它是以链表的方式保存数据,便于数据的插入和删除。

           如果在要求上不是太苛刻,可以忽略他们之间的区别。

  补充:Vector和ArrayList都是以数组的形式保存数据,但是Vector中的方法加以sybchronized修饰,是线性安全的,但是性能是比ArrayList要差一些。

2.ArrayList中常用的方式实例:

 1 public class List1 {
 2 
 3     public static void main(String[] args) {
 4         List<String> list = new ArrayList<String>();
 5         list.add("a");
 6         list.add("b");
 7         list.add("c");
 8         list.add("d");
 9         list.add("e");
10         list.add("f");
11         list.add("g");
12         System.out.println("原:" + list); // 原:[a, b, c, d, e, f, g]
13 
14         // 获取子list,该子list和原list占有相同的存储空间
15         // list.subList(fromIndex, toIndex) 前闭后开
16         List<String> list1 = list.subList(1, 3);
17         System.out.println(list1);   //[b, c]
18         
19         list1.set(0, "change");
20         System.out.println(list1);  //[change, c]
21         System.out.println(list);//[a, change, c, d, e, f, g] 由于list1 和list占有相同的存储空间,因此原list也改变
22         
23         //删除集合中的一段数据
24         list.subList(1, 6).clear();  //删除原List中下标为1-5的元素
25         System.out.println(list);  // [a, g]
26         
27     }
28 }
原文地址:https://www.cnblogs.com/iwwenbo/p/3350526.html