Java入门—集合

作者: kakarotto | 来源:发表于2018-11-09 23:52 被阅读19次

    应用场景:

    1. 无法预测存储数据的数量
    2. 同时存储具有一对一关系的数据
    3. 需要进行数据的增删
    4. 数据重复问题

    集合概览

    image.png

    List(列表)

    • List是元素有序并且可以重复的集合,称为序列。
    • List可以精确控制每个元素的插入位置,或者删除某个为止的元素。
    • List两个主要实现类是ArrayList 和 LinkedList。

    ArrayList 和 LinkedList 两者的数据存储方式是不同的:

    • ArrayList :和数组相似,但是长度可以动态增长,在内存中的一片连续存储空间进行存储
    • LinkedList:本身是链表

    Set

    无序、不重复集合。

    HashSet
    • HashSet是Set的一个重要实现类,称为哈希集。
    • HashSet中元素无需并且不可重复。
    • HashSet中只允许一个null元素。
    • 具有良好的存取和查找性能。

    HashSet底层是hashMap。

    遍历HashSet需要使用迭代器方法。

    Iterator(迭代器)
    • Iterator接口可以以统一的方式对各种集合元素进行遍历
    • hasNext()方法检测集合中是否还有下一个元素(返回ture或false)
    • next() 方法返回集合中的下一个元素
    import java.util.HashSet;
    import java.util.Set;
    import java.util.Iterator;
    
    public class TestIterator {
        public static void main(String[] args){
            Set s = new HashSet();
            s.add("allen");
            s.add("ming");
            s.add("hello");
            Iterator it = s.iterator();
            while (it.hasNext()){
                System.out.println(it.next());
            }
    
        }
    }
    

    Map

    • Map中的数据是以键值对(key-value)形式存储的
    • key-value以Entry类型的对象实例存在
    • 通过key可以快速查找value值
    • 不能包含重复的建(key值必须唯一)
    HashMap
    • 基于哈希表的Map接口实现
    • 允许使用null值和null键值
    • HashMap中Entry对象时无序排列的

    总结

    ArrayList
    • 底层由数组实现
    • 元素有序且可以重复
    • 可以动态增长,以满足应用程序的需求
    • 元素值可以为null
    HashSet
    • 元素无序并且不可以重复
    • 只允许一个null元素
    HashMap
    • 键不能重复
    • 允许使用null值和null键
    • HashMap中的Entry对象是无序排列的
    Iterator(迭代器)
    • Iterator接口以统一的方式对各种集合元素进行遍历


      image.png

    相关文章

      网友评论

        本文标题:Java入门—集合

        本文链接:https://www.haomeiwen.com/subject/cgtgxqtx.html