• Java集合基础


    Java的4大接口

    1、Collection:顶级集合接口,其下有List和Set两大接口。

    2、List:存储有序的、不唯一的数据。

    3、Set:存储无序的、唯一的数据。

    4、Map:以键值对的形式存储数据,以键取值。键不能重复,但值可以重复。

    List接口

    是一个有序集合,继承自Collection接口。现已知常用实现类有:ArrayList、LinkedList、Vector。

    1、ArrayList实现了一个长度可变的数组,在内存空间中开辟一串连续的空间。

    2、LinkedList使用链表结构存储数据,在插入和删除元素是速度非常快。

    3、Vector实现了一个动态数组,它是同步访问的。

    如何遍历List

    1、for循环。

    2、foreach遍历。

    for(type element: array) {
        System.out.println(element);
    }
    

    3、使用迭代器遍历列表。

    Set接口

    是一个无序集合,继承自Collection接口。现已知常用实现类有:HashSet、LinkedHashSet、TreeSet。

    1、HashSet:底层是HashMap的相关方法,传入数据后,根据数据的hashCode进行散列运算,得到一个散列值后再进行运算,确定元素在序列中存储的位置。所以,使用HashSet存数据必须在实体类中重写hashCode和equals方法!!

    2、LinkedHashSet:在HashSet的基础上,新增了一个链表。用链表来记录HashSet种元素放入的顺序;HashSet依然是无序的,但链表会按照存入的顺序存储。

    3、TreeSet:将存入的数据,进行排序,然后输出。如果传入的是一个实体对象,那么需要传入比较器:实体类实现Comparable接口,并重写CompareTo方法。

    Map接口

    它以键值对的形式存储数据,键不能重复,值可以重复。常用实现类有:HashMap、HashTable、LinkedHashMap、TreeMap。

    1、LinkedHashMap:可以使用列表,记录数据放入的次序,输出的顺序与放入的顺序一致。

    2、TreeMap:根据键的顺序,进行排序后输出。如果传入的是实体对象,必须重写比较函数。

    HashMap和HashTable的区别

    1、HashTable是线程安全的,HashMap是线程不安全的。

    2、HashTable的键不能为null,HashMap的键可以为null。

    3、HashTable继承自Dirctionary抽象类,HashMap继承自AbstractMap类。

    4、扩容大小:HashTable两倍加一,HashMap两倍。

    5、初始容量:HashTable为11,HashMap为16。

  • 相关阅读:
    携程面试之后的一些感想
    Log4perl 的使用
    perl Can't use string Cxxx) as a symbol ref while "strict refs" in use at XXXX.pl错误
    selenium web driver 配合使用testng
    泡泡一分钟:Learning Motion Planning Policies in Uncertain Environments through Repeated Task Executions
    泡泡一分钟:Efficient Trajectory Planning for High Speed Flight in Unknown Environments
    运行okvis-mono
    Robotics Education and Research at Scale
    泡泡一分钟:Teaching Robots to Draw
    Gan-based zero-shot learning 论文整理
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/12465746.html
Copyright © 2020-2023  润新知