zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    第01组 Beta冲刺(1/5)
    2019 SDN上机第6次作业
    2019 SDN上机第5次作业
    SDN课程阅读作业(2)
    USDT钱包对接交易所 寻找最便捷的USDT充提币API接口文档
    EOS区块链钱包开发教程
    XRP钱包对接教程
    usdt钱包如何跟交易所对接?
    BTC_ETH_USDT_自动充提币API接口,钱包对接交易所教程!
    BTC bitcoin-cli转账及交易的API使用教程
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/12465746.html
Copyright © 2011-2022 走看看