linkedlist

1.ArrayList

  去除ArrayList中重複字符串元素方式數組

  同一個循環中,不能有兩個next()方法,不然數據會丟失安全

 1     /*
 2          * 需求:去除ArrayList集合重複的元素
 3          * 1.建立一個新集合,
 4          * 2.使用迭代器,把原集合的元素添加進新集合,
 5          * 3.若是新集合中已經有了的元素就不添加了
 6          */
 7         List list = new ArrayList();
 8         list.add("a");
 9         list.add("a");
10         list.add("b");
11         list.add("c");
12         list.add("c");
13         list.add("c");
14         
15         //建立一個新集合
16         ArrayList alist =new ArrayList(); 
17         
18         //迭代器
19         Iterator it= list.iterator();
20         while (it.hasNext()) {
21             
22             //把原集合轉爲String類型,一個循環中不能擁有兩個next,
23             String str = (String)it.next();
24             
25             //判斷新集合中的元素和原集合元素有沒有重複的
26             //若是有重複的就不添加了
27             if (!(alist.contains(str))) {
28                 alist.add(str);     
29             }
30         }
31         System.out.println(alist);

  

   去除重複自定義對象學習

 

 1         /*
 2          * 去除重複自定義對象
 3          * 重要是的自定義類中要記得重寫equals方法
 4          */
 5         ArrayList list = new ArrayList();
 6         list.add(new Student("z",34));
 7         list.add(new Student("ww",43));
 8         list.add(new Student("r",12));
 9         list.add(new Student("z",34));
10         //建立新集合
11         ArrayList list2 = new ArrayList<>();
12         //迭代器
13         Iterator it = list.iterator();
14         while(it.hasNext()) {
15             //向下轉型到學生類
16             Student stu = (Student)it.next();
17             //沒有相同的就添加
18             if (!(list2.contains(stu))) {
19                 list2.add(stu);
20             }
21         }
22         System.out.println(list2);




 

 2.linkedList集合

  

 1     LinkedList linked = new LinkedList();
 2         //添加到集合元素的最前面
 3         linked.addFirst("a");
 4         linked.addFirst("b");
 5         //添加到集合元素的最後面
 6         linked.addLast("c");
 7         linked.addLast("v");
 8         linked.addLast("w");
 9         
10         System.out.println(linked);
11         //get()方法獲取指定位置的元素
12         linked.get(3);
13         //刪除第一個元素
14         linked.removeFirst();
15         //刪除最後一個元素
16         linked.removeLast();
17         //獲取最後一個元素
18         linked.getLast();
19         //獲取第一個元素
20         linked.getFirst();
21         
22         
23         //遍歷linkedList集合的迭代器
24         Iterator it = linked.iterator();
25         while(it.hasNext()) {
26             System.out.println(it.next());
27         }

 

 

3.泛型概述和基本使用

  泛型就是限定了集合中存儲的數據類型大數據

  好處:提升安全性(將運行期錯誤轉到編譯器錯誤)人工智能

     省區強轉的麻煩spa

  泛型的基本使用:<>中放的必須是引用數據類型code

  先後的泛型必須一致,或者後面的泛型能夠省略不寫對象

   

 1     // 泛型後的遍歷迭代
 2         ArrayList list = new ArrayList();
 3         list.add(new Student("z", 34));
 4         list.add(new Student("ww", 43));
 5         list.add(new Student("r", 12));
 6         list.add(new Student("z", 34));
 7 
 8         Iterator<Student> it = list.iterator();
 9         while (it.hasNext()) {
10             Student str = it.next();
11 
12             System.out.println(str);
13             /*
14              * 輸出結果爲
15              * Student [name=z, age=34] 
16              * Student [name=ww, age=43] 
17              * Student [name=r,age=12] 
18              * Student [name=z, age=34]
19              */
20             System.out.println(str.getAge()+ " " + str.getName());
21             /*
22              * 輸出結果爲:
23              * 43 ww
24              * 12 r
25              * 34 z
26              */
27         }

 

 4.foreach的遍歷方法

 1 ArrayList<String> arrayList = new ArrayList<>();
 2         arrayList.add("a");
 3         arrayList.add("b");
 4         arrayList.add("c");
 5         // 普通for遍歷方式
 6         for (int i = 0; i < arrayList.size(); i++) {
 7             System.out.print(arrayList.get(i) + " ");
 8         }
 9         System.out.println("++++++++++++++");
10         // 迭代器遍歷
11         Iterator it = arrayList.iterator();
12         while (it.hasNext()) {
13             System.out.print(it.next() + " ");
14         }
15         System.out.println("-------------------");
16         // 加強for循環
17         for (String s : arrayList) {
18             System.out.print(s + " ");
19         }

 

 

5.三種迭代方法是否能夠刪除

  能夠使用加強for循環刪除blog

 1         ArrayList<String> arrayList = new ArrayList<>();
 2         arrayList.add("a");
 3         arrayList.add("b");
 4         arrayList.add("g");
 5         // 普通for遍歷方式
 6         for(int i=0; i<arrayList.size();i++){
 7             if ("b".equals(arrayList.get(i))) {
 8                 arrayList.remove(i--);
 9             }
10         }    

 

 6,集合嵌套

 

 1         //第一個班級,學習大數據
 2         ArrayList<Student> list2 = new ArrayList();
 3         list2.add(new Student("z", 34));
 4         list2.add(new Student("ww", 43));
 5         list2.add(new Student("r", 12));
 6         list2.add(new Student("z", 34));
 7         //第二個班級學習人工智能
 8         ArrayList<Student> list1 = new ArrayList();
 9         list1.add(new Student("z", 34));
10         list1.add(new Student("ww", 43));
11         list1.add(new Student("r", 12));
12         list1.add(new Student("z", 34));
13         //這是學校包擴班級
14         ArrayList<ArrayList<Student>> list = new ArrayList<>();
15         
16         //外循環控制班級
17         for (ArrayList<Student> a : list) {
18             //內循環控制輸出學生
19             for (Student s : a) {
20                 System.out.println(s);
21             }
22         }

 

 7.加強for循環

    簡化數組和Collection集合的遍歷rem

  格式:

    for(元素數據類型 變量 : 數組或者Collection集合) {

        使用變量便可,該變量就是元素

    }

 

  簡化遍歷

 

 1 for (Student s : a) {

2   System.out.println(s);

3 }  

相關文章
相關標籤/搜索