Collection工具类:

集合工具类,定义除了存取以外的集合常用方法

方法:

  • public static void reverse(List<?> list)   //反转集合中元素的顺序
  • public static void shuffle(List<?> list)   //随机重置集合元素的顺序
  • public static void
  • sort(List<T> list> //升序排序(元素类型必须实现Comparable接口)
    package com.java.leetcode.collection;
    
    import java.lang.reflect.Array;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List; /*
    Collection工具类的使用
    */
    public class CColletion {
    public static void main(String[] args) {
    List<Integer> list = new ArrayList<>();
    list.add(20);
    list.add(13);
    list.add(1);
    list.add(64);
    list.add(0);
    //sort排序
    System.out.println("排序之前:"+list);
    Collections.sort(list); //默认升序
    System.out.println("排序之后:"+list);
    //binarySearch 二分查找
    int i = Collections.binarySearch(list,20);
    System.out.println("二分查找20:"+i);
    //copy
    List<Integer> dest = new ArrayList<>();
    for(int k=0;k<list.size();k++){
    dest.add(0);//先添加0
    }
    Collections.copy(dest,list);//这里需要两者大小一样。所以需要在copy之前为dest指定大小。如果不指定大小,会报java.lang.IndexOutOfBoundsException。
    Collections.sort(dest, new Comparator<Integer>() {
    @Override
    public int compare(Integer o1, Integer o2) {
    return o2.compareTo(o1); //自定义比较规则。此处写的降序
    }
    });
    System.out.println("自定义比较器排序之后:"+dest);
    //reverse反转
    Collections.reverse(list);
    System.out.println("list反转之后:"+list);
    //shuffle 打乱
    Collections.shuffle(list);
    System.out.println("打乱之后:"+list);
    //list转数组
    Integer[] arr = list.toArray(new Integer[0]);
    System.out.println("list转数组之后:"+ Arrays.toString(arr));
    //数组转list。转后的list是一个受限集合,不能添加删除
    String[] names = {"张三","李四","王二","秋萍"};
    List<String> list1 = Arrays.asList(names);
    //list1.add("哈哈");//此行会报UnsupportedOperationException
    System.out.println("数组转list之后:"+list1); Integer[] nums = {1,50,136,0,23};
    List<Integer> arr1 = Arrays.asList(nums);
    System.out.println("Integer数组转集合"+Arrays.toString(nums)); int[] num = {1,5,158,0,13};
    List<int []> arr2 = Arrays.asList(num);//但是这样的话,集合里的元素就不是单个数字,而是一个数组.所以不要用int,用Integer
    System.out.println("int数组转集合"+Arrays.toString(num));
    //将基本类型数组转成集合时,需要修改为包装类型
    }
    }

运行结果:

 集合总结:

  • 集合的概念:对象的容器,定义了对多个对象进行操作的常用方法
  • List集合:有序,有下标,元素可以重复。(ArrayList,LinkedList,Vector)
  • Set集合:无序,无下标,元素不可重复。(HashSet,TreeSet)
  • Map集合:存储一对数据。无序,无下标,键不可重复,值可以重复。(HashMap,HashTable,TreeMap)
  • Collections:集合工具类,定义除了存取以外的集合常用方法。

最新文章

  1. 父页面操作iframe子页面的安全漏洞及跨域限制问题
  2. python异常处理、反射、socket
  3. 50. Pow(x, n) (编程技巧)
  4. 免费的天气预报API--谷歌,雅虎,中央气象台
  5. windows下安装testlink
  6. 【Android进阶】URL与URI的区别
  7. apply和call的区别
  8. codeforces 746C 模拟
  9. [C++]2-6 排列
  10. MySQL高可用方案--MHA部署及故障转移
  11. FMS Dev Guide学习笔记
  12. TI(德州仪器) TMS320C674x逆向分析之二
  13. Egret容器的鼠标默认事件
  14. SparkStreaming操作Kafka
  15. python-单链表的实现
  16. 关于解决idea 输入法不跟随问题
  17. 原!linux脚本统计
  18. hdu 2818 Building Block(并查集,有点点复杂)
  19. javascript「篱式」条件判断
  20. 利用AdaBoost方法构建多个弱分类器进行分类

热门文章

  1. SQL注入工具sqlmap的使用
  2. mmap代替通用IO读取文件数据(curious)
  3. synchronized已经不在臃肿了,放下对他的成见之初识轻量级锁
  4. Java中实现多态的机制是什么?
  5. mysql 实现类似Oracle 或 db2 sequence
  6. JVM-learning
  7. memcached 如何实现冗余机制?
  8. java-面向对象相关
  9. npm run start 后台运行
  10. Netty学习摘记 —— 再谈EventLoop 和线程模型