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

概要

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

Collection接口

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

boolean isEmpty();

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

boolean add(E e);

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

boolean addAll(Collection<? extends E> c);

Collection集合遍历

迭代器

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

next方法获取元素

public static void main(String[] args) {
    // 创建String类型的集合
    Collection<String> list = new ArrayList<String>();
    list.add("aaa");
    list.add("bbb");
    list.add("aaa");

    // 创建迭代器对象
    Iterator ite = list.iterator();
    // 通过next取出元素
    System.out.println(ite.next()); // aaa
    System.out.println(ite.next()); // bbb
    System.out.println(ite.next()); // aaa
    // System.out.println(ite.next()); // 注意不要越界, 越界则报错
}

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

public static void main(String[] args) {
    // 创建String类型的集合
    Collection<String> list = new ArrayList<String>();
    list.add("aaa");
    list.add("bbb");
    list.add("aaa");

    // 创建迭代器对象
    Iterator ite = list.iterator();
  
    // hasNext作为条件
    while (ite.hasNext()) {
        System.out.println(ite.next());
    }
}
for循环遍历:
public static void main(String[] args) {
    // 创建String类型的集合
    Collection<String> list = new ArrayList<String>();
    list.add("aaa");
    list.add("bbb");
    list.add("aaa");
    // 创建int类型的数组
    int[] arr = {10, 20, 80, 40};

    // foreach遍历集合
    for (String item : list) {
        System.out.println(item);
    }
    // foreach遍历数组
    for (int item : arr) {
        System.out.println(item);
      	// item = 100; // 注意此处修改变量item的值不会影响数组的值, 该操作无意义
    }
}
Lambda遍历
  • 通过foreach方法遍历
public static void main(String[] args) {
    // 创建String类型的集合
    Collection<String> list = new ArrayList<String>();
    list.add("aaa");
    list.add("bbb");
    list.add("aaa");

    // 通过foreach方法遍历
    list.forEach(new Consumer<String>() {
        @Override
        public void accept(String s) {
            System.out.println(s);
        }
    });
}
  • 通过foreach方法结合Lambda表达式进行遍历
public static void main(String[] args) {
    // 创建String类型的集合
    Collection<String> list = new ArrayList<String>();
    list.add("aaa");
    list.add("bbb");
    list.add("aaa");

    // foreach方法结合Lambda表达式
    list.forEach(s -> System.out.println(s));
}

Collection和Collections的区别

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

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

1)排序(Sort)

Collections.sort(list)

举栗子:

 List<Integer> list = new ArrayList<Integer>();

        int array[] = {103,45,6,45,678};

        for(int i = 0 ; i <array.length; i ++) {

                list.add(array[i]);

          }

        Collections.sort(list);

        for(int i = 0 ; i<array.length;i++){

                System.out.println(list.get[i]);

        }


输出结果: 6  45 45 103 678 

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

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

2)交换(Swap)

使用方法: Collections.swap()

举栗子:

 List<Integer> list = new ArrayList<Integer>();

    int array[] = {1,2,3,4,5,6,7,8};

   for(int i = 0 ; i <array.length; i ++) {

                list.add(array[i]);

          }

    Collections.swap(list,0,1);

            参数解析 

list-- 在该列表中的调剂元素。

i-- 要交换的一个元素的索引。

j-- 要交换的其它元素的索引。

    for(int i =0; i<array.length;i++){

                println(list.get[i]);

        }

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

3)反转(Reverse)

使用方法: Collections.reverse()

举栗子:

  List<Integer> list = new ArrayList<Integer>();

    int array[] = {1,2,3,4,5,6,7,8};

   for(int i = 0 ; i <array.length; i ++) {

                list.add(array[i]);

          }

    Collections.reverse(list);

    for(int i =0; i<array.length;i++){

                println(list.get[i]);

        }

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

4)混排(Shuffling)

使用方法: Collections.reverse()

 List<Integer> list = new ArrayList<Integer>();

    int array[] = {1,2,3,4,5,6,7,8};

   for(int i = 0 ; i <array.length; i ++) {

                list.add(array[i]);

          }

    Collections.reverse(list);

    for(int i =0; i<array.length;i++){

                println(list.get[i]);

        }

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

使用方法: Collections.fill()

    List<Integer> list = new ArrayList<Integer>();

    int array[] = {1,2,3,4,5,6,7,8};

   for(int i = 0 ; i <array.length; i ++) {

                list.add(array[i]);

          }

    Collections.fill(list,11);

    for(int i =0; i<array.length;i++){

                println(list.get[i]);

        }

6)拷贝(Copy)

使用方法: Collections.copy()

   List<Integer> list = new ArrayList<Integer>();

    List<Integer> list2 = new ArrayList<Integer>();

    int array[] = {1,2,3,4,5,6,7,8};

   for(int i = 0 ; i <array.length; i ++) {

                list.add(array[i]);

          }

    Collections.copy(list,list2);

    for(int i =0; i<array.length;i++){

                println(list2.get[i]);

        }

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有了详细的了解。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值