[20]-Collections工具类

集合转换为数组

数组转换为集合

package com.lin;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        //集合转成数组
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("hello");
        arrayList.add("world");
        //第一种 toArray 类型是object类型 长度由集合中的元素确定
        Object[] obj = arrayList.toArray();
        for (Object o : obj) {
            System.out.println(o);
        }
        //第二种 转成指定是数组 前提:需要我们准备确定类型的数组
        //若集合的元素超出数组给定的长度,将以集合为准
        String[] strArray = new String[5];
        strArray = arrayList.toArray(strArray);
        for (String s : strArray) {
            System.out.println(s);
        }

        /*
        数组转成集合
         */
        int[] array={11,12,13};
        List<int[]> list = Arrays.asList(array);
        /*
        输出后元素只有一个,而且是内存地址,主要原因是
        集合只能存储引用数据类型,所以将数组当作引用数据类型,放进集合
        如果需要出三个元素,需要类型转成Integer类型
         */
        Integer[] array2 = new Integer[]{11,22,33};
        List<Integer> list1 = Arrays.asList(array2);
        
    }
}

Collections工具类的使用

专门用来操作集合的工具类.

构造方法私有,禁止创建对象

提供一系列静态方法实现对各种集合的操作具体操作:搜索、复制、排序、线程安全化等
在这里插入图片描述

public class TestCollections {
    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        ArrayList<String> arrayList1 = new ArrayList<>();

        //(1)向集合中添加N多个元素 参数1:集合名称 参数2,3,4,...,n添加元素
        Collections.addAll(arrayList,"hello","world","java");
        System.out.println(arrayList);

        //(2)二叉搜索 适用List集合 set不适用,使用前需要排序
        Collections.sort(arrayList);
        //String类具备了比较大小的能力,默认按因为升序大小排序,可定义外部比较器定义排序规则
        Collections.binarySearch(arrayList,"java"); //有,返回索引为1
        Collections.binarySearch(arrayList,"html");//无,返回索引为-2 (-2=-(插入点+1)推理出来的插入点1)

        //(3)集合拷贝
        /**
         * 拷贝集合需要注意的地方,如果集合.size()>目标集合.size() 出现IndexOutOfBoundsException 错误
         * 拷贝后目标集合的元素将会被覆盖 覆盖从索引0 开始
         */
        Collections.copy(arrayList1,arrayList);
        //将arrayList的内容拷贝到arrayList1中,如果超出目标集合容量,报错
        //解决报错方式 向目标数组添加元素
        Collections.addAll(arrayList1,"sql","html","css");

        //(4) 填充
        /**
         * 所有元素都使用html来填充,也就是所有元素替换成html
         */
        Collections.fill(arrayList1,"html");

        //(5)查找最大与最小元素
        System.out.println("查找最大元素"+Collections.max(arrayList));
        System.out.println("查找最小元素"+Collections.min(arrayList));

        //(6)集合逆序
        Collections.reverse(arrayList1);

        //(7)线程同步
        List<String> list = Collections.synchronizedList(arrayList);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值