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:集合工具类,定义除了存取以外的集合常用方法。

Collection工具类的更多相关文章

  1. 第29天学习打卡(迭代器、泛型 、Collection工具类、set集合的特点及应用、Map集合的特点及应用)

    迭代器 对过程的重复,称为迭代. 迭代器是遍历Collection集合的通用方式,可以在对集合遍历的同时进行添加.删除等操作. 迭代器的常用方法 next():返回迭代的下一个元素对象 hasNext ...

  2. 集合-Collection工具类

    一.概念 二.常用方法 1.Collection和Collections的区别 Collection:是创建集合的接口,Collections是一个操作Collection工具类 2.常用方法 点击查 ...

  3. Java集合----Collection工具类

    Collections 工具类 Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了 ...

  4. Guava工具类

    原文链接:http://blog.csdn.net/mnmlist/article/details/53425865 Objects类 Objects类有几个比较不错的方法,toString.hash ...

  5. Arrays工具类与Collections工具类

    Arrays工具类 : Arrays.sort():对指定数组进行排序,从小到大 Arrays.toString():返回数组的内容的字符串表示形式 Arrays.asList():数组转List,但 ...

  6. Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)

    集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...

  7. Java基础 @org.junit.Test-单元测试方法 + 操纵Collection和Map的工具类 : Collections 的sort/binarySearch/max/min等静态方法

      单元测试代码:  ( 在IDEA中先输入'@Test '然后根据提示进行自动修订即可!!运行时直接运行即可! 若有多个单元测试块的时候,直接把鼠标放在哪里就自动在哪里运行那个单元块) import ...

  8. Java容器类Collection,List,Set,Map.,Iterator,Collections工具类,Arrays工具类,Comparable

    Java容器类Collection,List,Set,Map.,Iterator,Collections工具类,Arrays工具类,Comparable接口,泛型 Collection,List,Se ...

  9. Java自学第6期——Collection、Map、迭代器、泛型、可变参数、集合工具类、集合数据结构、Debug

    集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值. ...

随机推荐

  1. vue3.0的更新和defineProperty优化?

    放弃 Object.defineProperty ,使用更快的原生 Proxy (访问对象拦截器, 也成代理器) 提速, 降低内存使用, Tree-shaking更友好 支持IE11等 使用Types ...

  2. mq 的缺点?

    (1)系统可用性降低 系统引入的外部依赖越多,越容易挂掉,本来你就是 A 系统调用 BCD 三个系统的接口就好了,人 ABCD 四个系统好好的,没啥问题,你偏加个 MQ 进来,万一MQ 挂了咋整?MQ ...

  3. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入?

    你两种依赖方式都可以使用,构造器注入和Setter方法注入.最好的解决方案是用构造器参数实现强制依赖,setter方法实现可选依赖.

  4. Spring基于xml注入bean的几种方式?

    (1)Set方法注入: (2)构造器注入:①通过index设置参数的位置:②通过type设置参数类型: (3)静态工厂注入: (4)实例工厂:

  5. 为什么要用Spring

    1.方便解耦,简化开发 通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合.有了Spring,用户不必再为单实例模式类.属性文件解析 ...

  6. Spring 支持的 ORM?

    Spring 支持以下 ORM:HibernateiBatisJPA (Java Persistence API)TopLinkJDO (Java Data Objects)OJB

  7. pandas - drop()函数

    函数形式:DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors ...

  8. Altium_Designer PCB文件的绘制(上:PCB基础和布局)

    PCB设计基础知识 PCB面板 在PCB设计中,最重要的一个面板就是"PCB面板".该面板的功能主要是对电路板中的各个对象进行精确定位,并以特定的效果显示出来.该面板还可以对各种对 ...

  9. 【wepy入门教程】48小时开发看美女微信小程序,万花阁

    说明:本文只做小程序的开发过程记录:小程序仅供学习参考,严禁用于商业及非法用途 准备 不管是做网站还是做小程序,只要是To C,就少不了做内容,因此第一步依然是数据准备,从网上找到两个网站: http ...

  10. Flex布局在小程序的使用

    一篇旧文,上手小程序时做的一些探索 Flex布局是一种十分灵活方便的布局方式,目前主流的现代浏览器基本都实现了对Flex布局的完全支持.而在微信小程序中,IOS端使用的渲染引擎WKWebView和安卓 ...