zoukankan      html  css  js  c++  java
  • 集合的概述

    List、Map、Set的区别与联系

    1、结构特点

    • List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合;
    • List存储的数据是有序的并且值是可以重复;Map中存储的数据是无序的,它的键是不允许重复的,但它的值是可以重复的;Set中存储的数据是无序的并且是不允许重复的,它的元素是由hashcode决定的,所以是固定的(用户无法控制hashcode,所有是无序的);

    2、实现类

    1. List接口的3个实现类
      • LinkedList基于链表的实现,非线程安全的,链表内存是散列的,增删快,查询慢;
      • ArrayList是基于数组的,非线程安全的,效率高,增删慢,查询快;
      • Vector是基于数组的,线程安全的,效率低,增删慢,查询慢;
    2. Map接口的4个实现类
      • HashMap基于hash表的Map接口实现,非线程安全,高效,支持null值与null键;
      • HashTable 线程安全,线程安全,低效,不支持null值与null键;
      • LinkedHashMap是HashMap的一个子类,保存了记录的插入顺序;
      • SortMap接口 Treemap是SortMap的实现类,能够把保存的记录根据键排序,默认是键值的升序
    3. Set接口有2个实现类
      1. HashSet 底层是由HashMap实现,不允许集合中有重复的数值;
      2. LinkedHashSet 继承于HashSet,同时又基于LinkedHashMap来进行实现,底层实现是LinkedHashMap;
  • 相关阅读:
    PAT (Basic Level) Practise:1001. 害死人不偿命的(3n+1)猜想
    流加密法
    The NMEA 0183 Protocol
    USB 描述符
    网摘
    What are the 10 algorithms one must know in order to solve most algorithm challenges/puzzles?
    Why did Jimmy Wales invest in Quora? Is he afraid that it will take over Wikipedia?
    Add Binary
    Cocos2d-x 网络资源
    Cache
  • 原文地址:https://www.cnblogs.com/qiaoliming/p/list.html
Copyright © 2011-2022 走看看