最近培訓是先學習java基礎 從最基本的開始學起 因為今天剛剛開博客 要把上周的一些重點內容歸納一下
1.Arraylist常用遍歷以及排序
1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.Comparator; 4 import java.util.Iterator; 5 6 public class Test05 { 7 public static void main(String[] args) { 8 9 10 // 先new一個Arraylist (泛型不懂得我也沒辦法) 11 ArrayList<String> arrayList = new ArrayList<String>(); 12 13 14 //添加元素 15 16 arrayList.add("3"); 17 arrayList.add("1"); 18 arrayList.add("2"); 19 arrayList.add("2"); 20 21 //利用工具類Collections里面的sort進行排序 22 Collections.sort(arrayList); 23 24 //arrayList.size()獲取集合長度,arrayList.get()返回在此列表中的指定位置的元素。 25 26 for (int i = 0; i < arrayList.size(); i++) { 27 System.out.println(arrayList.get(i)); 28 29 } 30 31 32 //利用迭代器遍歷 33 Iterator<String> iterator = arrayList.iterator(); 34 //利用while循環獲取元素 35 while (iterator.hasNext()) { 36 String string = iterator.next();//指到下一個元素 37 System.out.println(string); 38 } 39 System.out.println("--------------------"); 40 41 42 //利用匿名內部類comparator方法重寫,arraylist.sort的排序 43 arrayList.sort(new Comparator<String>() { 44 //這是一個匿名內部類 45 @Override 46 public int compare(String o1, String o2) { 47 //將String 轉為char 48 char a = (char) o1.charAt(0); 49 char b = (char) o2.charAt(0); 50 return a - b;//返回值自己定 正數 0或者負數會有不同的排序方法 51 } 52 }); 53 54 //foreach循環遍歷 55 for (String string : arrayList) { 56 System.out.println(string); 57 } 58 System.out.println("--------------------"); 59 60 } 61 }
2.運行結果
3.總結:
其中有三種遍歷方式
1.最后一種利用for循環 跟數組一樣獲取集合長度,在通過指定位置獲取指定位置的元素,這是最基本的,(其中Collections工具類將集合進行排序)
2.利用迭代器,iterator來通過hasNest()查看集合是否含有元素,在通過iterator.next()指定到下一個元素,從何獲取元素達到遍歷
3.第三種利用foreach循環遍歷 其中編寫了comparator比較器排序
擴展:
這是利用迭代器刪除指定元素
因為正常刪除的話,ArrayList是集合,長度不是固定的,所以無法使用for循環來獲取元素再刪除 因為在你刪除前一個值得同時,長度減少了1,並且后一個值向前挪動了一位,此時i會增加1后直接移動兩位,以至於丟失刪除不到。
而迭代器是通過指針,指向當前數據結構的起始位置。(遍歷器的本質就是一個指針對象),不斷調用指針對象的next方法,指向下一個元素,直到它指向數據結構的結束位置。
1 //迭代器 2 Iterator<String> iterator = arrayList.iterator(); 3 //利用while循環獲取元素 4 while (iterator.hasNext()) { 5 //如果下一個元素值為2,將它移除 6 if(iterator.next().equals("2")) { 7 iterator.remove(); 8 } 9 } 10 for (String string : arrayList) { 11 System.out.println(string); 12 }
運行結果:
以上只是一個學習一周的小程序員,有誤請及時糾正,讓我學習到更深刻的知識。謝謝。