集合框架——Colletions工具类,集合总结(完结)

Colletions工具类

  • 概念:集合工具类,定义了除了存取以外的集合常用方法。

    此类仅由静态方法组合或返回集合。

    它包含对集合进行操作的多态算法,“包装器”,返回由指定集合支持的新集合,以及其他一些可能的和最终的。

    如果提供给它们的集合或类对象为null,则此类的方法都抛出一个NullPointerException

    该类中包含的多态算法的文档通常包括实现的简要说明 。 这些描述应被视为实施说明 ,而不是说明书的一部分 。 只要规范本身得到遵守,实现者就可以随意替代其他算法。 (例如,sort使用的算法不一定是一个mergeesort,但它必须是稳定的 。)

  • 方法:

    • reverse(List<?> list)反转指定列表中元素的顺序。

    • shuffle(List<?> list)使用默认的随机源随机排列指定的列表。

    • sort(List<T> list)根据其元素的natural ordering对指定的列表进行排序,元素必须实现comparable接口

    • binarySearch(List<? extends Comparable<? super T>> list, T key) 使用二叉搜索算法搜索指定对象的指定列表。

    • copy(List<? super T> dest, List<? extends T> src)将所有元素从一个列表复制到另一个列表中。两个列表大小必须要一样大。

package com.map.demo;

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

public class Demo3 {
    public static void main(String[] args) {
        /*
         * Collections 工具类
         * Arrays 
         * */

        List<String> s = new ArrayList<>();

        s.add("孙悟空");
        s.add("猪八戒");
        s.add("沙和尚");
        s.add("牛魔王");

        System.out.println(s.toString());
        Collections.reverse(s);  // 倒序
        System.out.println(s);
        System.out.println("===================================");

        Collections.shuffle(s);  // 乱序
        System.out.println(s);

        List<String> s2 = new ArrayList<>();

        for (int i = 0; i < s.size(); i++) {
            s2.add("0");
        }

        Collections.copy(s2, s);  //复制,两个集合大小必须一样大否则会报 IndexOutOfBoundsException
        System.out.println(s2);
        System.out.println("===================================");


        Collections.sort(s);
        System.out.println(s);  //排序
        System.out.println("===================================");

        String[] strings = s.toArray(new String[0]);  // ClassCastException
        for (int i = 0; i < strings.length; i++) {
            System.out.println(strings[i]);
        }
        System.out.println("===================================");
        Integer[] integers = {100, 200, 300, 400, 500};

        List<Integer> integers1 = Arrays.asList(integers);
//        integers1.remove(0);  // 这样转换过来的集合不能做增删操作 UnsupportedOperationException
        for (Integer item : integers1) {
            System.out.println(item);
        }
    }
}

集合总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Pointer-faker

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

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

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

打赏作者

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

抵扣说明:

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

余额充值