65 java集合和泛型_15 _Collections工具类

65 java集合和泛型_15 _Collections工具类

Collection工具类(对集合进行操作)

  1. 概念:集合工具类,定义了除了存取以外的集合常用方法。
  2. 方法:
    • public static void reverse(List<?> list) //反转集合中元素的顺序
    • public static void shuffle(List<?> list) //随机重置集合元素的顺序
    • public static void sort(List list) //升序排序(元素类型必须实现Comparable接口)
    • 它里面有很多方法(可查看api学习)

代码:

package com.wlw.collection;

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

/**
 * Collections工具类的使用
 * 对集合进行操作(类比:Arrays类 对数组的操作)
 */
public class Collections_Demo {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(12);
        list.add(5);
        list.add(16);
        list.add(98);
        list.add(1);

        //1. sort 排序 (默认升序)
        System.out.println("排序之前:"+list.toString());
        Collections.sort(list);
        System.out.println("排序之后:"+list.toString());

        //2. binarySearch 二分查找 (先排序,才能查找,返回的是要查找数据的下标,-1代表没有)
        int i = Collections.binarySearch(list, 12);
        System.out.println("所查找元素的下标:"+ i + ",元素为:"+list.get(i));

        //3.copy 复制(要求两个集合长度相同,所以需要先对目标集合确定长度)
        ArrayList<Integer> dest = new ArrayList<Integer>();
        for (int j = 0; j < list.size(); j++) {
            dest.add(0);
        }
        Collections.copy(dest,list);
        System.out.println("目标集合:"+dest.toString());

        //4.reverse 反转
        Collections.reverse(list);
        System.out.println("反转之后:"+list.toString());

        //5.shuffle 打乱  (每次都不一样)
        Collections.shuffle(list);
        System.out.println("打乱之后:"+list.toString());

        //6.集合转数组
        System.out.println("---------------集合转数组---------------");
        //数组的长度如果小于集合的长度,则会自动扩充,如果大于,则其他为null
        Integer[] arr = list.toArray(new Integer[0]);
        System.out.println(arr.length);
        System.out.println(Arrays.toString(arr));

        System.out.println("---------------数组转集合---------------");
        String[]  names = {"张三","李四","王五"};
        //这是一个受限集合,不能添加和删除(否则报错)
        List<String> asList = Arrays.asList(names);
        System.out.println(asList.toString());

        //如果想正常使用方法,需要进一步转换
        List<String> newlist = new ArrayList<>(asList);
        newlist.add("新增");
        System.out.println(newlist.toString());


        //注意:数组转集合,数组里如果是数字,需要用Integer来定义,不能用基本类型(否则,集合中就只有一个对象,而不是数据)
        //那基本类型数组转成集合时,需要修改为包装类
        Integer[] nums = {100,200,300,400};
        List<Integer> asList1 = Arrays.asList(nums);
        System.out.println(asList1);
    }
}

集合总结

  1. 集合的概念:对象的容器,和数组类似,定义了对多个对象进行操作的常用方法。
  2. List集合:有序、有下标、元素可以重复。 (ArrayList、 LinkedList、Vector)
  3. Set集合:无序、无下标、元素不可重复。 (HashSet、 TreeSet)
  4. Map集合:存储一对数据,无序、无下标,键不可重复,值可重复。 (HashMap、 HashTable、 TreeMap)
  5. Collections:集合工具类,定义了除了存取以外的集合常用方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悬浮海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值