Set与List

Set

java.uti.Set接口 extends Collection接口

  • 特点:
    1. 不允许存储重复元素
    2. 没有索引

java.uti.HashSet集合 implements Set接口

  • 特点:
    1. 不允许存储重复元素
    2. 没有索引
    3. 是一个无序的集合,存储和取出的顺序有可能不一样
    4. 底层是一个哈希表结构(查询的速度非常快)

java.util.LinkedHashSet extends HashSet集合

  • 特点:
    • 底层是一个哈希表,多了一条链表(记录元素的存储顺序),保证元素有序

List

java.util.List接口 extends Collection接口

  • List接口的特点:

    1. 有序的集合,存储和取出的顺序是一样的(存储123 取出123)

    2. 有索引,包含了一些带索引的方法

    3. 允许存储重复的元素

Java.util.LinkedList集合 implements List接口

  • 底层是一个链表结构,查询慢,增删快

  • 里面包含了大量操作首尾元素的方法

可变参数

  • 可变参数:是JDK1.5之后出来的新特性

  • 使用前提:

    • 当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数。
  • 使用格式:定义方法时使用

    • 修饰符 返回值类型 方法名(数据类型…变量名){}
  • 可变参数的原理:

    • 可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数
      传递的参数个数,可以是0个(不传递) 1个….多个

注意事项:

  1. 一个方法的参数列表,只能有一个可变参数
  2. 如果方法的参数有多个,那么可变参数必须写在参数列表的末尾

Collections集合工具类

java.util.Collections是集合工具类,用来对集合进行操作,部分方法如下:

  1. public static <T> boolean addAll(Collection<? super T> c, T... elements);将所有指定元素添加到指定 collection 中。

  2. public static void shuffle(List<?> list);使用指定的随机源对指定列表进行置换。

  3. public static <T extends Comparable<? super T>> void sort(List<T> list);根据元素的自然顺序 对指定列表按升序进行排序。

    • 此接口的使用前提:
      • 被排序的集合里面存储的元素必须实现接口Comparable,重写接口中的方法compareTo定义排序的规则
      • 有两种方法:
        1. Comparable:自己和参数比较,自己需要实现Comparable接口,重写比较的规则compareTo方法
        2. Comparator:相当于找一个第三方裁判,比较双方
  4. public static <T> void sort(List<T> list, Comparator<? super T> c);根据指定比较器产生的顺序对指定列表进行排序。

  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!

请我喝杯咖啡吧~

支付宝
微信