• Android开发中集合之Collection和Collections集合


    概要

    提示:Android开发中有很多时候使用到集合,今天我们就来详细的了解一下Android开发中集合的种类

    Collection接口

    //返回这个集合是否为空

    boolean isEmpty();

    //添加一个单例到集合中

    boolean add(E e);

    //将指定集合中的所有元素都添加到当前集合中

    boolean addAll(Collection c);

    Collection集合遍历

    迭代器

    // 创建迭代器对象 Iterator ite = list.iterator();

    next方法获取元素

    1. public static void main(String[] args) {
    2. // 创建String类型的集合
    3. Collection list = new ArrayList();
    4. list.add("aaa");
    5. list.add("bbb");
    6. list.add("aaa");
    7. // 创建迭代器对象
    8. Iterator ite = list.iterator();
    9. // 通过next取出元素
    10. System.out.println(ite.next()); // aaa
    11. System.out.println(ite.next()); // bbb
    12. System.out.println(ite.next()); // aaa
    13. // System.out.println(ite.next()); // 注意不要越界, 越界则报错
    14. }

    hasNext方法会判断当前位置是否有元素, 我们可以使用hasNext方法作为While循环的条件, 实现自动遍历元素

    1. public static void main(String[] args) {
    2. // 创建String类型的集合
    3. Collection list = new ArrayList();
    4. list.add("aaa");
    5. list.add("bbb");
    6. list.add("aaa");
    7. // 创建迭代器对象
    8. Iterator ite = list.iterator();
    9. // hasNext作为条件
    10. while (ite.hasNext()) {
    11. System.out.println(ite.next());
    12. }
    13. }
    for循环遍历:
    1. public static void main(String[] args) {
    2. // 创建String类型的集合
    3. Collection list = new ArrayList();
    4. list.add("aaa");
    5. list.add("bbb");
    6. list.add("aaa");
    7. // 创建int类型的数组
    8. int[] arr = {10, 20, 80, 40};
    9. // foreach遍历集合
    10. for (String item : list) {
    11. System.out.println(item);
    12. }
    13. // foreach遍历数组
    14. for (int item : arr) {
    15. System.out.println(item);
    16. // item = 100; // 注意此处修改变量item的值不会影响数组的值, 该操作无意义
    17. }
    18. }
    Lambda遍历
    • 通过foreach方法遍历
    1. public static void main(String[] args) {
    2. // 创建String类型的集合
    3. Collection list = new ArrayList();
    4. list.add("aaa");
    5. list.add("bbb");
    6. list.add("aaa");
    7. // 通过foreach方法遍历
    8. list.forEach(new Consumer() {
    9. @Override
    10. public void accept(String s) {
    11. System.out.println(s);
    12. }
    13. });
    14. }
    • 通过foreach方法结合Lambda表达式进行遍历
    1. public static void main(String[] args) {
    2. // 创建String类型的集合
    3. Collection list = new ArrayList();
    4. list.add("aaa");
    5. list.add("bbb");
    6. list.add("aaa");
    7. // foreach方法结合Lambda表达式
    8. list.forEach(s -> System.out.println(s));
    9. }

    Collection和Collections的区别

    java.util.Collection是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在java类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List和Set。
    Collection接口的简单继承关系,如下图:

    Collections则是集合类的一个工具类,其中提供了一系列静态方法,用于对集合中元素进行排序,搜索以及线程安全等各种操作。

    1)排序(Sort)

    Collections.sort(list)

    举栗子:

    1. List list = new ArrayList();
    2. int array[] = {103,45,6,45,678};
    3. for(int i = 0 ; i
    4. list.add(array[i]);
    5. }
    6. Collections.sort(list);
    7. for(int i = 0 ; i
    8. System.out.println(list.get[i]);
    9. }

    输出结果: 6  45 45 103 678 

    使用方法2:Collection.sort(list,new MyComparator(); 

    可以更加强大的定义自己的比较器,定义不同的字段,比如:比较不同品牌汽车的价格,销量,油耗等,可以直接使用此方法进行比较。具体的使用可以参考下这篇文章 Java中Collections详解

    2)交换(Swap)

    使用方法: Collections.swap()

    举栗子:

    1. List list = new ArrayList();
    2. int array[] = {1,2,3,4,5,6,7,8};
    3. for(int i = 0 ; i
    4. list.add(array[i]);
    5. }
    6. Collections.swap(list,0,1);
    7. 参数解析
    8. list-- 在该列表中的调剂元素。
    9. i-- 要交换的一个元素的索引。
    10. j-- 要交换的其它元素的索引。
    11. for(int i =0; i
    12. println(list.get[i]);
    13. }

    输出结果:2 1 3 4 5 6 7 8

    3)反转(Reverse)

    使用方法: Collections.reverse()

    举栗子:

    1. List list = new ArrayList();
    2. int array[] = {1,2,3,4,5,6,7,8};
    3. for(int i = 0 ; i
    4. list.add(array[i]);
    5. }
    6. Collections.reverse(list);
    7. for(int i =0; i
    8. println(list.get[i]);
    9. }

    输出结果:8 7 6 5 4 3 2 1

    4)混排(Shuffling)

    使用方法: Collections.reverse()

    1. List list = new ArrayList();
    2. int array[] = {1,2,3,4,5,6,7,8};
    3. for(int i = 0 ; i
    4. list.add(array[i]);
    5. }
    6. Collections.reverse(list);
    7. for(int i =0; i
    8. println(list.get[i]);
    9. }

    5)替换所有的元素(Fill)

    使用方法: Collections.fill()

    1. List list = new ArrayList();
    2. int array[] = {1,2,3,4,5,6,7,8};
    3. for(int i = 0 ; i
    4. list.add(array[i]);
    5. }
    6. Collections.fill(list,11);
    7. for(int i =0; i
    8. println(list.get[i]);
    9. }

    6)拷贝(Copy)

    使用方法: Collections.copy()

    1. List list = new ArrayList();
    2. List list2 = new ArrayList();
    3. int array[] = {1,2,3,4,5,6,7,8};
    4. for(int i = 0 ; i
    5. list.add(array[i]);
    6. }
    7. Collections.copy(list,list2);
    8. for(int i =0; i
    9. println(list2.get[i]);
    10. }

    7)返回Collections中最小的元素(min)

    collections.min(list);

    8)返回Collection中的最大元素(max)

    collection.max(list);

    9)lastIndexOfSubList

    int count = Collection.lastIndexOfSubList(list,li);

    10)IndexOfSubList

    int count= Collections.indexOfSubList(list,li);

    11)Rotate

    Collections.rotate(list,-1);
     

    小结

    本篇文章主要讲解了Collection集合。相信通过上面的介绍大家应该对Collections有了详细的了解。

  • 相关阅读:
    知识文库杂志知识文库杂志社知识文库编辑部2022年第14期目录
    Linux入门教程||Linux 文件与目录管理
    centos7安装php
    缓存策略与Apollo:优化网络请求性能
    【进阶版】机器学习之神经网络与深度学习基本知识和理论原理(07)
    Cpp/Qtday070914cpp基础
    当下流行的编程语言
    队列(定义,基本操作,顺序存储,链式存储)
    适合家电和消费类应用R7F101GEE4CNP、R7F101GEG4CNP、R7F101GEG3CNP、R7F101GEE3CNP新一代RL78通用微控制器
    AI智能伪原创工具:原创文章自动生成的革新
  • 原文地址:https://blog.csdn.net/qq_36451275/article/details/134464553