java 集合之Arraylist的遍历及排序
最近培训是先学习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 }
运行结果:
以上只是一个学习一周的小程序员,有误请及时纠正,让我学习到更深刻的知识。谢谢。
作者:刘认真
-------------------------------------------
新人只求记录学习生活!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!