Java中對List集合的常用操作

原文地址https://www.cnblogs.com/epeter/p/5648026.html


目錄:

  1. list中添加,獲取,刪除元素;
  2. list中是否包含某個元素;
  3. list中根據索引將元素數值改變(替換);
  4. list中查看(判斷)元素的索引;
  5. 根據元素索引位置進行的判斷;
  6. 利用list中索引位置重新生成一個新的list(截取集合);
  7. 對比兩個list中的所有元素;
  8. 判斷list是否爲空;
  9. 返回Iterator集合對象;
  10. 將集合轉換爲字符串;
  11. 將集合轉換爲數組;
  12. 集合類型轉換;
  13. 去重複;

 

備註:內容中代碼具有關聯性。

1.list中添加,獲取,刪除元素;

  添加方法是:.add(e);  獲取方法是:.get(index);  刪除方法是:.remove(index); 按照索引刪除;  .remove(Object o); 按照元素內容刪除;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
List<String> person=new ArrayList<>();
            person.add("jackie");   //索引爲0  //.add(e)
            person.add("peter");    //索引爲1
            person.add("annie");    //索引爲2
            person.add("martin");   //索引爲3
            person.add("marry");    //索引爲4
             
            person.remove(3);   //.remove(index)
            person.remove("marry");     //.remove(Object o)
             
            String per="";
            per=person.get(1);
            System.out.println(per);    ////.get(index)
             
            for (int i = 0; i < person.size(); i++) {
                System.out.println(person.get(i));  //.get(index)
            }

 

2.list中是否包含某個元素;

  方法:.contains(Object o); 返回true或者false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
List<String> fruits=new ArrayList<>();
            fruits.add("蘋果");
            fruits.add("香蕉");
            fruits.add("桃子");
            //for循環遍歷list
            for (int i = 0; i < fruits.size(); i++) {
                System.out.println(fruits.get(i));
            }
            String appleString="蘋果";
            //true or false
            System.out.println("fruits中是否包含蘋果:"+fruits.contains(appleString));
             
            if (fruits.contains(appleString)) {
                System.out.println("我喜歡吃蘋果");
            }else {
                System.out.println("我不開心");
            }

 

3.list中根據索引將元素數值改變(替換);

  注意 .set(index, element); 和 .add(index, element); 的不同;

1
2
3
4
5
6
7
8
9
10
11
12
String a="白龍馬", b="沙和尚", c="八戒", d="唐僧", e="悟空";
            List<String> people=new ArrayList<>();
            people.add(a);
            people.add(b);
            people.add(c);
            people.set(0, d);   //.set(index, element);     //將d唐僧放到list中索引爲0的位置,替換a白龍馬
            people.add(1, e);   //.add(index, element);     //將e悟空放到list中索引爲1的位置,原來位置的b沙和尚後移一位
             
            //增強for循環遍歷list
            for(String str:people){
                System.out.println(str);
            }

 

4.list中查看(判斷)元素的索引;  

  注意:.indexOf(); 和  lastIndexOf()的不同;

1
2
3
4
5
6
7
8
9
10
List<String> names=new ArrayList<>();
            names.add("劉備");    //索引爲0
            names.add("關羽");    //索引爲1
            names.add("張飛");    //索引爲2
            names.add("劉備");    //索引爲3
            names.add("張飛");    //索引爲4
            System.out.println(names.indexOf("劉備"));
            System.out.println(names.lastIndexOf("劉備"));
            System.out.println(names.indexOf("張飛"));
            System.out.println(names.lastIndexOf("張飛"));

 

5.根據元素索引位置進行的判斷;

1
2
3
4
5
6
7
if (names.indexOf("劉備")==0) {
    System.out.println("劉備在這裏");
}else if (names.lastIndexOf("劉備")==3) {
    System.out.println("劉備在那裏");
}else {
    System.out.println("劉備到底在哪裏?");
}

 

6.利用list中索引位置重新生成一個新的list(截取集合);

  方法: .subList(fromIndex, toIndex);  .size() ; 該方法得到list中的元素數的和

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
List<String> phone=new ArrayList<>();
            phone.add("三星");    //索引爲0
            phone.add("蘋果");    //索引爲1
            phone.add("錘子");    //索引爲2
            phone.add("華爲");    //索引爲3
            phone.add("小米");    //索引爲4
            //原list進行遍歷
            for(String pho:phone){
                System.out.println(pho);
            }
            //生成新list
            phone=phone.subList(14);  //.subList(fromIndex, toIndex)      //利用索引1-4的對象重新生成一個list,但是不包含索引爲4的元素,4-1=3
            for (int i = 0; i < phone.size(); i++) { // phone.size() 該方法得到list中的元素數的和
                System.out.println("新的list包含的元素是"+phone.get(i));
            }

 

7.對比兩個list中的所有元素;

  //兩個相等對象的equals方法一定爲true, 但兩個hashcode相等的對象不一定是相等的對象

1
2
3
4
5
6
7
8
9
10
11
//1.<br>if (person.equals(fruits)) {
    System.out.println("兩個list中的所有元素相同");
}else {
    System.out.println("兩個list中的所有元素不一樣");
}
//2.       
if (person.hashCode()==fruits.hashCode()) {
    System.out.println("我們相同");
}else {
    System.out.println("我們不一樣");
}

 

8.判斷list是否爲空;

  //空則返回true,非空則返回false

1
2
3
4
5
if (person.isEmpty()) {
    System.out.println("空的");
}else {
    System.out.println("不是空的");
}

 

9.返回Iterator集合對象;

1
System.out.println("返回Iterator集合對象:"+person.iterator());

 

1+0.將集合轉換爲字符串;

1
2
3
String liString="";
liString=person.toString();
System.out.println("將集合轉換爲字符串:"+liString);

 

11.將集合轉換爲數組;

1
System.out.println("將集合轉換爲數組:"+person.toArray());

 

12.集合類型轉換;

1
2
3
4
5
6
7
8
9
10
//1.默認類型
List<Object> listsStrings=new ArrayList<>();
  for (int i = 0; i < person.size(); i++) {
    listsStrings.add(person.get(i));
}
//2.指定類型
List<StringBuffer> lst=new ArrayList<>();
  for(String string:person){
  lst.add(StringBuffer(string));
}

 

13.去重複;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
List<String> lst1=new ArrayList<>();
            lst1.add("aa");
            lst1.add("dd");
            lst1.add("ss");
            lst1.add("aa");
            lst1.add("ss");
 
                   //方法 1.
            for (int i = 0; i <lst1.size()-1; i++) {
                for (int j = lst1.size()-1; j >i; j--) {
                    if (lst1.get(j).equals(lst1.get(i))) {
                        lst1.remove(j);
                    }
                }
            }
            System.out.println(lst1);
             
                   //方法 2.
            List<String> lst2=new ArrayList<>();
            for (String s:lst1) {
                if (Collections.frequency(lst2, s)<1) {
                    lst2.add(s);
                }
            }
            System.out.println(lst2);

 

 

附完整代碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package MyTest01;
 
import java.util.ArrayList;
import java.util.List;
 
public class ListTest01 {
 
    public static void main(String[] args) {
         
            //list中添加,獲取,刪除元素
            List<String> person=new ArrayList<>();
            person.add("jackie");   //索引爲0  //.add(e)
            person.add("peter");    //索引爲1
            person.add("annie");    //索引爲2
            person.add("martin");   //索引爲3
            person.add("marry");    //索引爲4
             
            person.remove(3);   //.remove(index)
            person.remove("marry");     //.remove(Object o)
             
            String per="";
            per=person.get(1);
            System.out.println(per);    ////.get(index)
             
            for (int i = 0; i < person.size(); i++) {
                System.out.println(person.get(i));  //.get(index)
            }
             
             
         
            //list總是否包含某個元素
            List<String> fruits=new ArrayList<>();
            fruits.add("蘋果");
            fruits.add("香蕉");
            fruits.add("桃子");
            //for循環遍歷list
            for (int i = 0; i < fruits.size(); i++) {
                System.out.println(fruits.get(i));
            }
            String appleString="蘋果";
            //true or false
            System.out.println("fruits中是否包含蘋果:"+fruits.contains(appleString));
             
            if (fruits.contains(appleString)) {
                System.out.println("我喜歡吃蘋果");
            }else {
                System.out.println("我不開心");
            }
             
            //list中根據索引將元素數值改變(替換)
            String a="白龍馬", b="沙和尚", c="八戒", d="唐僧", e="悟空";
            List<String> people=new ArrayList<>();
            people.add(a);
            people.add(b);
            people.add(c);
            people.set(0, d);   //.set(index, element)      //將d唐僧放到list中索引爲0的位置,替換a白龍馬
            people.add(1, e);   //.add(index, element);     //將e悟空放到list中索引爲1的位置,原來位置的b沙和尚後移一位
             
            //增強for循環遍歷list
            for(String str:people){
                System.out.println(str);
            }
             
            //list中查看(判斷)元素的索引
            List<String> names=new ArrayList<>();
            names.add("劉備");    //索引爲0
            names.add("關羽");    //索引爲1
            names.add("張飛");    //索引爲2
            names.add("劉備");    //索引爲3
            names.add("張飛");    //索引爲4
            System.out.println(names.indexOf("劉備"));
            System.out.println(names.lastIndexOf("劉備"));
            System.out.println(names.indexOf("張飛"));
            System.out.println(names.lastIndexOf("張飛"));
             
            //根據元素索引位置進行的判斷
            if (names.indexOf("劉備")==0) {
                System.out.println("劉備在這裏");
            }else if (names.lastIndexOf("劉備")==3) {
                System.out.println("劉備在那裏");
            }else {
                System.out.println("劉備到底在哪裏?");
            }
             
            //利用list中索引位置重新生成一個新的list(截取集合)
            List<String> phone=new ArrayList<>();
            phone.add("三星");    //索引爲0
            phone.add("蘋果");    //索引爲1
            phone.add("錘子");    //索引爲2
            phone.add("華爲");    //索引爲3
            phone.add("小米");    //索引爲4
            //原list進行遍歷
            for(String pho:phone){
                System.out.println(pho);
            }
            //生成新list
            phone=phone.subList(14);  //.subList(fromIndex, toIndex)      //利用索引1-4的對象重新生成一個list,但是不包含索引爲4的元素,4-1=3
            for (int i = 0; i < phone.size(); i++) { // phone.size() 該方法得到list中的元素數的和
                System.out.println("新的list包含的元素是"+phone.get(i));
            }
             
            //對比兩個list中的所有元素
            //兩個相等對象的equals方法一定爲true, 但兩個hashcode相等的對象不一定是相等的對象
            if (person.equals(fruits)) {
                System.out.println("兩個list中的所有元素相同");
            }else {
                System.out.println("兩個list中的所有元素不一樣");
            }
             
            if (person.hashCode()==fruits.hashCode()) {
                System.out.println("我們相同");
            }else {
                System.out.println("我們不一樣");
            }
             
             
            //判斷list是否爲空
            //空則返回true,非空則返回false
            if (person.isEmpty()) {
                System.out.println("空的");
            }else {
                System.out.println("不是空的");
            }
             
            //返回Iterator集合對象
            System.out.println("返回Iterator集合對象:"+person.iterator());
             
            //將集合轉換爲字符串
            String liString="";
            liString=person.toString();
            System.out.println("將集合轉換爲字符串:"+liString);
             
            //將集合轉換爲數組,默認類型
            System.out.println("將集合轉換爲數組:"+person.toArray());
             
            ////將集合轉換爲指定類型(友好的處理)
            //1.默認類型
            List<Object> listsStrings=new ArrayList<>();
            for (int i = 0; i < person.size(); i++) {
                listsStrings.add(person.get(i));
            }
            //2.指定類型
            List<StringBuffer> lst=new ArrayList<>();
            for(String string:person){
                lst.add(StringBuffer(string));
            }
             
             
             
             
    }
 
    private static StringBuffer StringBuffer(String string) {
        return null;
    }
 
 
    }

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章