目 录CONTENT

文章目录

List和set

在水一方
2021-12-30 / 0 评论 / 0 点赞 / 901 阅读 / 874 字 / 正在检测是否收录...

List是java.util包下的一个接口(interface),继承了Collection

list中比较常用的两个类:ArrayList和LinkedList
ArrayList的底层结构是数组,数组的数据结构是线性表,其默认的容量为10,线性表是最基本、最简单、也是最常用的一种数据结构

线性表主要由顺序表示或链式表示。在实际应用中,常以栈、队列、字符串等特殊形式使用(这个应该怎么理解)

线性表和链表在插入和删除数据上的效率又是怎么来体现出来的呢

 private static final int DEFAULT_CAPACITY = 10;

关于Set

  • Set中最常用的三个类:HashSet、TreeSet、LinkedHashSet

Set是java.util包下的一个接口(interface),继承了Collection,往Set中添加元素不能重复,如果重复添加,最新添加的会覆盖原有的值
image.png

Set是无序的
image.png

set是使用HashMap来实现的,只是value固定为一个静态对象,使用key来保证集合元素的唯一性,它不能保证集合元素的顺序

LinkedHashSet

LinkedHashSet继承自HashSet,具有HashSet的优势,内部使用链表维护了元素插入顺序

public class LinkedHashSet<E>
    extends HashSet<E>
    implements Set<E>, Cloneable, java.io.Serializable {
}

 @Test
    public void linkedHashSetDemo(){
        HashSet<String> set = new LinkedHashSet<>();
        set.add("name");
        set.add("age");
        set.add("address");
        System.out.println(set);
    }

得到的结果为:
[name, age, address]

接下来问题来了,Set的应用场景是什么呢?

0

评论区