java list 顺序遍历_java 集合之Arraylist的遍历及排序

最近培训是先学习java基础 从最基本的开始学起 因为今天刚刚开博客 要把上周的一些重点内容归纳一下

1.Arraylist常用遍历以及排序

1 importjava.util.ArrayList;2 importjava.util.Collections;3 importjava.util.Comparator;4 importjava.util.Iterator;5

6 public classTest05 {7 public static voidmain(String[] args) {8

9

10 //先new一个Arraylist (泛型不懂得我也没办法)

11 ArrayList arrayList = new ArrayList();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 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() {44 //这是一个匿名内部类

45 @Override46 public intcompare(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.运行结果

de7e2012f3808abcea71446b7dca1a3a.png

3.总结:

其中有三种遍历方式

1.最后一种利用for循环 跟数组一样获取集合长度,在通过指定位置获取指定位置的元素,这是最基本的,(其中Collections工具类将集合进行排序)

2.利用迭代器,iterator来通过hasNest()查看集合是否含有元素,在通过iterator.next()指定到下一个元素,从何获取元素达到遍历

3.第三种利用foreach循环遍历 其中编写了comparator比较器排序

扩展:

这是利用迭代器删除指定元素

因为正常删除的话,ArrayList是集合,长度不是固定的,所以无法使用for循环来获取元素再删除 因为在你删除前一个值得同时,长度减少了1,并且后一个值向前挪动了一位,此时i会增加1后直接移动两位,以至于丢失删除不到。

而迭代器是通过指针,指向当前数据结构的起始位置。(遍历器的本质就是一个指针对象),不断调用指针对象的next方法,指向下一个元素,直到它指向数据结构的结束位置。

1 //迭代器

2 Iterator 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 }

运行结果:

7fa991382dc884e62fa4668b4fc1d924.png

以上只是一个学习一周的小程序员,有误请及时纠正,让我学习到更深刻的知识。谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值