去除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);
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 }
泛型就是限定了集合中存儲的數據類型大數據
好處:提升安全性(將運行期錯誤轉到編譯器錯誤)人工智能
省區強轉的麻煩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 }
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 }
能夠使用加強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 }
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 }
簡化數組和Collection集合的遍歷rem
格式:
for(元素數據類型 變量 : 數組或者Collection集合) {
使用變量便可,該變量就是元素
}
簡化遍歷
1 for (Student s : a) {
2 System.out.println(s);
3 }