java面向对象2(19) ​​​​​​​集合工具类(快捷操作工具)

java面向对象2(19) ​​​​​​​集合工具类(快捷操作工具)

一.  集合快捷操作工具-Collections

Collections是集合工具类,专门对集合(ArrayListLinkedListVector)进行操作。

常用方法:

方法名称

描述

public static <T> void sort(List<T> list)

从小到大排序

默认只能对基本数据类型

public static <T> int binarySearch(List<?> list,T key)

查找元素索引(必须先排序),否则无法返回索引

 

元素重复,寻找最后一个出现的元素【不研究】

public static void shuffle(List<?> list)

随机打乱元素顺序

public addAll(Collection<? super T> c, T... elements)

一次添加多个元素

 

实用举例:

/*
    * Collections工具类:
    * */
    public static void main(String[] args) {
        //创建ArrayList集合
        ArrayList<Integer> list1 = new ArrayList<Integer>();

        //1、快捷一次性添加数据:addAll
        Collections.addAll(list1,11,99,88,100,99);
        System.out.println("addAll执行完毕:"+list1);

        //2、快捷排序:sort   默认:从小到大
        Collections.sort(list1);
        System.out.println("sort执行完毕:"+list1);
        //反转
//        Collections.reverse(list1);
//        System.out.println("反转结果:"+list1);
        //3、快捷查找元素 : 没找到就是负数
        int i = Collections.binarySearch(list1, 11);
        System.out.println("11元素的索引:"+i);
        int i2 = Collections.binarySearch(list1, 1000);
        System.out.println("1000元素的索引:"+i2);
        int i3 = Collections.binarySearch(list1, 99);
        System.out.println("99元素的索引:"+i3);

        //4、快捷打乱顺序:
        Collections.shuffle(list1);
        System.out.println(list1);
    }

 

 

 

强化练习;

解:


public static void main(String[] args) {
    //1、定义集合
    ArrayList<Integer> list = new ArrayList<Integer>();
    //2、存数据
    Collections.addAll(list,10,33,7,0,100,55);
    System.out.println("原始数据:"+list);
    //3、排序
    Collections.sort(list);
    //4、寻找55元素的索引
    int index = Collections.binarySearch(list, 55);
    //5、展示
    System.out.println("排序后数据:"+list);
    System.out.println("55的索引号:"+index);
}

 

 

二.数组快捷操作工具-Arrays

Arrays是数组工具类,常用方法:

方法名称

描述

public static int binarySearch(Xxx[] a,Xxx key)

查找元素索引

已经很少使用。

查找之前一定要先进行排序

public static void sort(Xxx[] a)

从小到大排序

public static String toString(Xxx[] a)

把整个数组所有元素

拼成一个字符串并返回

 

实用举例:

/*
*   Arrays数组操作:
* */
public static void main(String[] args) {
    int[] arr = {123,6657,34,6,8,1,10,123};

    //1、排序: 从小到大
    Arrays.sort(arr);
    //2、展示
    System.out.println(Arrays.toString(arr));
    //从大到小:  ①拼接为字符串StringBuilder,反转切割  【难】
    //从大到小:  ②倒序循环保存
    //从大到小:  ③转为集合,集合反转
    //3、查找元素  :找不到返回负数
    int index = Arrays.binarySearch(arr, 1);
    System.out.println("元素1索引:"+index);

}

 

 

三. 集合和数组互转

  • 数组转集合

Arrays类的方法名称

描述

public List<T>  asList(T... a)

数组转集合,集合长度不可变

 

实用举例:

/*
    * 数组和集合的互转
    * */
    public static void main(String[] args) {
        //1、数组 转 集合
        Integer[] arr = {11,22,33,44,55,66};
        //转集合: 作为集合--》转为集合
        List<Integer> list = Arrays.asList(arr);
        System.out.println(list);
        //反转
//        Collections.reverse(list);
//        System.out.println(list);
        //添加/删除 ---- 失败,出异常 (由数组转成的集合,集合长度固定不可改变
//        list.remove(11);
//        list.add(18);
    }

 

 

  • 扩展:集合转成数组:

  • Collection类的方法名称

    描述

    public Object[] toArray(T[] arr)

    集合转数组

实用举例:

/*
* 数组和集合的互转
* */
public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<Integer>();
    Collections.addAll(list,11,22,33,44,55,66);
    //集合转数组
    Integer[] arr = list.toArray(new Integer[]{});
    System.out.println(Arrays.toString(arr));
}

 

 

今日总结:

集合工具类:

Collections         sort          addAll

Arrays                 toString    sort

 

数组===》集合:

Arrays.asList()======> 数组转成的集合,长度不可变

 

 

 

 

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~

​​​​​​​