1 package test1;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class test_1 {
7 // list 的详细使用
8 public static void main(String[] args) {
9 // 添加
10 List<String> person = new ArrayList<>();
11 person.add("jackie");
12 person.add("peter");
13 person.add("annie");
14 person.add("martin");
15 person.add("marry");
16 // 删除
17 person.remove(3);
18 person.remove("marry");
19 // 获取
20 String per = "";
21 per = person.get(1);
22 System.out.println(per);
23
24 for (int i = 0; i < person.size(); i++) {
25 System.out.println(person.get(i));
26 }
27
28 // 是否包含某个元素----fruits.contains(String str)
29 List<String> fruits = new ArrayList<>();
30 fruits.add("苹果");
31 fruits.add("香蕉");
32 fruits.add("桃子");
33 // for循环遍历list
34 for (String str : fruits) {
35 System.out.println(str);
36 }
37 String appleString = "苹果";
38 System.out.println("fruits中是否包含苹果:" + fruits.contains(appleString)); // true
39 // or
40 // false
41
42 // 根据索引将元素数值改变(替换)
43 String a = "白龙马", b = "沙和尚", c = "八戒", d = "唐僧", e = "悟空";
44 List<String> people = new ArrayList<>();
45 people.add(a);
46 people.add(b);
47 people.add(c);
48 // 将d唐僧放到list中索引为0的位置,替换a白龙马
49 people.set(0, d);
50 // 将e悟空放到list中索引为1的位置,原来位置的b沙和尚后移一位
51 people.add(1, e);
52 for (String str : people) {
53 System.out.println(str);
54 }
55
56 // list中查看(判断)元素的索引
57 List<String> names = new ArrayList<>();
58 names.add("刘备");
59 names.add("关羽");
60 names.add("张飞");
61 names.add("刘备");
62 names.add("张飞");
63 System.out.println(names.indexOf("刘备"));
64 System.out.println(names.lastIndexOf("刘备"));
65
66 // 根据元素索引位置进行的判断
67 if (names.indexOf("刘备") == 0) {
68 System.out.println("刘备在这里");
69 } else if (names.lastIndexOf("刘备") == 3) {
70 System.out.println("刘备在那里");
71 } else {
72 System.out.println("刘备到底在哪里?");
73 }
74
75 // 利用list中索引位置重新生成一个新的list(截取集合)
76 List<String> phone = new ArrayList<>();
77 phone.add("三星");
78 phone.add("苹果");
79 phone.add("锤子");
80 phone.add("华为");
81 phone.add("小米");
82 // 原list进行遍历
83 for (String pho : phone) {
84 System.out.println(pho);
85 }
86 // 生成新list
87 phone = phone.subList(1, 4); // .subList(fromIndex, toIndex)
88 // 利用索引1-4的对象重新生成一个list,但是不包含索引为4的元素,4-1=3
89 for (int i = 0; i < phone.size(); i++) {
90 // 该方法得到list中的元素数的和
91 System.out.println("新的list包含的元素是" + phone.get(i));
92 }
93
94 // 对比两个list中的所有元素
95 // 两个相等对象的equals方法一定为true
96 if (person.equals(fruits)) {
97 System.out.println("两个list中的所有元素相同");
98 } else {
99 System.out.println("两个list中的所有元素不一样");
100 }
101 // 但两个hashcode相等的对象不一定是相等的对象
102 if (person.hashCode() == fruits.hashCode()) {
103 System.out.println("我们相同");
104 } else {
105 System.out.println("我们不一样");
106 }
107
108 // 判断list是否为空
109 if (person.isEmpty()) {
110 System.out.println("空的");
111 } else {
112 System.out.println("不是空的");
113 }
114
115 // 返回Iterator集合对象
116 System.out.println("返回Iterator集合对象:" + person.iterator());
117
118 // 将集合转换为字符串
119 String liString = "";
120 liString = person.toString();
121 System.out.println("将集合转换为字符串:" + liString);
122
123 // 将集合转换为数组,默认类型
124 System.out.println("将集合转换为数组:" + person.toArray());
125
126 // 将集合转换为指定类型(友好的处理)
127 // 1.默认类型
128 List<Object> listsStrings = new ArrayList<>();
129 for (int i = 0; i < person.size(); i++) {
130 listsStrings.add(person.get(i));
131 }
132 // 2.指定类型
133 List<StringBuffer> lst = new ArrayList<>();
134 for (String string : person) {
135 lst.add(StringBuffer(string));
136 }
137
138 }
139
140 private static StringBuffer StringBuffer(String string) {
141 return null;
142 }
143
144 }