JAVA-集合-List

 1 package test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Comparator;
 5 import java.util.LinkedList;
 6 import java.util.List;
 7 import java.util.Stack;
 8 import java.util.Vector;
 9 
10 public class Collections {
11     public static void main(String[] args) {
12         /*List
13          *     ArrayList - 顺序表
14          *         1.底层是通过数组实现的
15          *         2.初始容量为10
16          *         3.在扩容的时候,每次在当前容量的基础上,增加一半,基于右移
17          *         4.线程不安全
18          *         5.插入和删除元素相对复杂,查询简单  --查询易,增删难
19          * 
20          * */
21         List<String> L1= new ArrayList<>();
22         L1.add("你好");
23         L1.add("中国");
24         L1.add("北京");
25         System.out.println(L1);
26         /*
27          * List 
28          *     LinkedList    - 链表
29          *         1.底层通过节点来存储数据,当添加数据的时候,会定义一个新的节点来存储数据
30          *         2.节点之间通过地址的引用的方式相互关联
31          *         3.线程不安全
32          *         4.增删易,查询难。
33          * 
34          * */
35         List<String> L2=new LinkedList<>();
36             L2.add("落花雨");
37             L2.add("你飘扬在天际");
38             System.out.println(L2);
39         /*    Comparator -比较器
40          *         1.重写compare 方法,在这个方法中制定比较规则
41          *         2.在排序的时候根据compare方法返回值的正负来确定排序顺序
42          *             例子:
43          *                 根据字符串的首字母进行排序
44          *                 根据首字母进行降序排序:首字母相同,则位置不发生变化
45          * */
46             L1.sort(new Comparator<String>() {
47                 //比较规则就是写在这个方法里
48                 //根据compare方法的返回值进行排序
49                 //如果返回的是一个正数,那么认为o1<o2,从而将o1排到o2的后面
50                 //如果返回的是一个正数,那么认为o1>o2,从而将o1排到o2的前面
51                 @Override
52                 public int compare(String o1, String o2) {
53                     // TODO Auto-generated method stub
54                     return o2.charAt(0)-o1.charAt(0);
55                 }
56             });
57             
58         /*    Vector - 向量
59          *         1.是java最早的集合
60          *         2.底层依然是依靠数组来存储元素
61          *         3.底层数组默认初始容量是10
62          *         4.如果不指定容量增量,那么每次扩容都是加上当前的长度,从而使数组的大小变为了原来的二倍 --- 三元
63          *         5.线程安全
64          * */
65             List<String> L3 = new Vector<>();
66             L3.add("花香依");
67             L3.add("把往事情勾起");
68             System.out.println(L3);
69         /*    Stack - 栈
70          *         1.是Vector的子类
71          *         2.满足后进先出(LIFO)的原则
72          *         3.栈顶元素:最后放入栈中的元素
73          *         4.栈底元素:最先放入栈中的元素
74          *         5.入栈压栈:将元素放入栈中
75          *         6.出栈弹栈:将元素从栈取出
76          * */
77             Stack<String> L4 = new Stack<>();
78                 L4.push("我愿意");
79                 L4.push("将浮萍躺湖心");
80                 System.out.println(L4.peek());
81                 System.out.println(L4);
82         /*
83          *     Queue - 队列
84          *         1.遵循先进先出的原则(FIFO)
85          *         2.队头元素:最先放入队列中的元素
86          *         3.队尾元素:最后放入队列中的元素
87          *         4.Deque:双向队列    
88          * */
89     }
90 }
原文地址:https://www.cnblogs.com/xiaoluohao/p/11461670.html