精华内容
下载资源
问答
  • List set map区别

    2020-07-16 12:19:27
    ListSet都是单列元素的集合,它们有一个功共同的父接口Collection。 Set里面不允许有重复的元素, 存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当...

    List与Set都是单列元素的集合,它们有一个功共同的父接口Collection。

    Set里面不允许有重复的元素,

    存元素:add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true;当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回结果为false。

    取元素:没法说取第几个,只能以Iterator接口取得所有的元素,再逐一遍历各个元素。

    List表示有先后顺序的集合,

    存元素:多次调用add(Object)方法时,每次加入的对象按先来后到的顺序排序,也可以插队,即调用add(int index,Object)方法,就可以指定当前对象在集合中的存放位置。

    取元素:方法1:Iterator接口取得所有,逐一遍历各个元素

        方法2:调用get(index i)来明确说明取第几个。
    

    Map是双列的集合,存放用put方法:put(obj key,obj value),每次存储时,要存储一对key/value,不能存储重复的key,这个重复的规则也是按equals比较相等。

    取元素:用get(Object key)方法根据key获得相应的value。

        也可以获得所有的key的集合,还可以获得所有的value的集合,
    
        还可以获得key和value组合成的Map.Entry对象的集合。
    

    List以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。

    展开全文
  • list set map区别

    2020-10-13 16:12:36
    list 列表 arryList 有序 查询快 增删改慢 线程安全 可以存重复值 可以为空值 底层是数组 LinkList 有序 查询慢 增删改快 线程不安全 可以重复值 底层是链表 Vector 有序 查询快 增删改慢 线程安全 可以重复值 底层...

    从毕业背到现在 就是背不下来哎
    再来一次(盗个图)
    在这里插入图片描述
    list 列表

    arryList 有序 查询快 增删改慢 线程安全 可以存重复值 可以为空值 底层是数组
    LinkList 有序 查询慢 增删改快 线程不安全 可以重复值 底层是链表
    Vector 有序 查询快 增删改慢 线程安全 可以重复值 底层是数组

    map 映射

    hashTable 不允许null 线程安全 唯一值 底层结构哈希表
    hashMap 允许空值 值唯一 无序 线程不安全 底层结构是数组+链表
    treeMap 不允许null 有序 值唯一 线程不安全 底层结构是红黑树

    set 集合

    hashSet 无序 唯一 可以存空
    treeSet 无序 唯一 可以存空

    展开全文
  • List Set Map区别

    2016-03-08 15:24:39
    List,Set,Map是否继承自Collection接口?  答:ListSet是,Map不是。 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能...
    List,Set,Map是否继承自Collection接口? 
    答:List,Set是,Map不是。 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java JDK不能提供直接继承自Collection的类,Java JDK提供的类都是继承自Collection的"子接口",如:List和Set。 
    注意:Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当做一组key集合,一组value集合,或者一组key-value映射。 

    List按对象进入的顺序保存对象,不做排序或编辑操作。Set对每个对象只接受一次,并使用自己内部的排序方法(通常,你只关心某个元素是否属于Set,而不关心它的顺序--否则应该使用List)。Map同样对每个元素保存一份,但这是基于"键"的,Map也有内置的排序,因而不关心元素添加的顺序。如果添加元素的顺序对你很重要,应该使用 LinkedHashSet或者LinkedHashMap.

    详细介绍: 
    List特点:元素有放入顺序,元素可重复 
    Map特点:元素按键值对存储,无放入顺序 
    Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 
    List接口有三个实现类:LinkedList,ArrayList,Vector 
    LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢 
    ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低 
    Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet 
    SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现) 
    Query接口有一个实现类:LinkList 
    Map接口有三个实现类:HashMap,HashTable,LinkeHashMap 
      HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null 
    SortedMap有一个实现类:TreeMap 
    其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对 
    set 一般无序不重复.map kv 结构 list 有序 。

    List的功能方法

      实际上有两种List: 一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的LinkedList,它并不是为快速随机访问设计的,而是具有一套更通用的方法。

      List : 次序是List最重要的特点:它保证维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(这只推荐LinkedList使用。)一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和移除元素。

      ArrayList : 由数组实现的List。允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和移除元素。因为那比LinkedList开销要大很多。

      LinkedList : 对顺序访问进行了优化,向List中间插入与删除的开销并不大。随机访问则相对较慢。(使用ArrayList代替。)还具有下列方法:addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(), 这些方法 (没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。

      Set的功能方法

      Set具有与Collection完全一样的接口,因此没有任何额外的功能,不像前面有两个不同的List。实际上Set就是Collection,只是行为不同。(这是继承与多态思想的典型应用:表现不同的行为。)Set不保存重复的元素(至于如何判断元素相同则较为负责)

      Set : 存入Set的每个元素都必须是唯一的,因为Set不保存重复元素。加入Set的元素必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。

      HashSet : 为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。

      TreeSet : 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。

      LinkedHashSet : 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。

      Map的功能方法

      方法put(Object key, Object value)添加一个“值”(想要得东西)和与“值”相关联的“键”(key)(使用它来查找)。方法get(Object key)返回与给定“键”相关联的“值”。可以用containsKey()和containsValue()测试Map中是否包含某个“键”或“值”。标准的Java类库中包含了几种不同的Map:HashMap, TreeMap, LinkedHashMap, WeakHashMap, IdentityHashMap。它们都有同样的基本接口Map,但是行为、效率、排序策略、保存对象的生命周期和判定“键”等价的策略等各不相同。

      执行效率是Map的一个大问题。看看get()要做哪些事,就会明白为什么在ArrayList中搜索“键”是相当慢的。而这正是HashMap提高速度的地方。HashMap使用了特殊的值,称为“散列码”(hash code),来取代对键的缓慢搜索。“散列码”是“相对唯一”用以代表对象的int值,它是通过将该对象的某些信息进行转换而生成的。所有Java对象都能产生散列码,因为hashCode()是定义在基类Object中的方法。

      HashMap就是使用对象的hashCode()进行快速查询的。此方法能够显著提高性能。

      Map : 维护“键值对”的关联性,使你可以通过“键”查找“值”

      HashMap : Map基于散列表的实现。插入和查询“键值对”的开销是固定的。可以通过构造器设置容量capacity和负载因子load factor,以调整容器的性能。

      LinkedHashMap : 类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是其插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一点。而在迭代访问时发而更快,因为它使用链表维护内部次序。

      TreeMap : 基于红黑树数据结构的实现。查看“键”或“键值对”时,它们会被排序(次序由Comparabel或Comparator决定)。TreeMap的特点在于,你得到的结果是经过排序的。TreeMap是唯一的带有subMap()方法的Map,它可以返回一个子树。

      WeakHashMao : 弱键(weak key)Map,Map中使用的对象也被允许释放: 这是为解决特殊问题设计的。如果没有map之外的引用指向某个“键”,则此“键”可以被垃圾收集器回收。

      IdentifyHashMap : 使用==代替equals()对“键”作比较的hash map。专为解决特殊问题而设计。

    展开全文
  • list set map 区别

    2015-08-04 14:53:26
    List(列表):元素是有序的,元素可以重复。因为该集合体系有索引。 set(集合):中的对象中按特定的方式排序,并且没有重复对象。 Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。

    List(列表):元素是有序的,元素可以重复。因为该集合体系有索引。

    set(集合):中的对象中按特定的方式排序,并且没有重复对象。

    Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。

    展开全文
  • List Set Map 区别记忆 这些都代表了 Java 中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。     有序否 ...
  • 集合 list set map区别

    2020-08-16 16:27:45
    list set map list set都实现了collection接口是单列集合,list有序有索引可以重复 set无序无索引不可重复 map双列集合 key不可以重复value可以重复 list: Arraylist:底层数据结构:数组 查询快 增删慢 线程不安全 ...
  • List集合的遍历方式: while-迭代器遍历 for-迭代器遍历 foreach-迭代遍历 for-get遍历(只有List才可以,set,map都不可以)有序可重复,因为底层的实现数组和链表,都是有下标来表示唯一性的,存进去什么顺序,取出来...
  • list set map list set都实现了collection接口是单列集合,list有序有索引可以重复 set无序无索引不可重复 map双列集合 key可以重复value不可以重复 list: Arraylist:底层数据结构:数组 查询快 增删慢 线程不安全 ...
  • java 的集合。Collection List Set Map 区别

    千次阅读 2009-11-18 23:37:00
    Collection List Set Map 区别http://hi.baidu.com/%BA%C3%D1%F2%BE%CD%BA%C3%D1%F9/blog/item/01082c591c72d4292834f0e1.html#send2007年09月04日 星期二 09:23Collection List Set Map 区别 有序否
  • 转载自:Java集合中List,Set以及Map等集合体系详解(史上最全) 概述: List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口 List下有ArrayList,Vector,LinkedList Set下有HashSet,...
  • listSetMap区别及适用场景 1、List,Set都是继承自Collection接口,Map则不是 2、List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(注意:元素虽然无放...
  • (转)Collection List Set Map 区别

    千次阅读 2007-08-24 09:20:00
    Collection List Set Map 区别 有序否 允许元素重复否
  • Java基本容器类包括:ListSet,Queue,Map ListSet,Queue继承自Collection Set 接口实现类包括 HashSet,TreeSet,LinkedHashSet。 不保存重元素 HashSet:最快获取元素方式,快速查找 TreeSet:按照比较结果...
  • 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。   有序否 允许元素重复否 Collection ...
  • List Set Map 区别

    2011-11-07 21:50:18
    Set 无序(除treeSet) key和value都不能重复 Map无序(除treeMap) key 必须唯一 value 可以重复//允许重复,并且是有序,允许为空 List list = new ArrayList(); list.add(123); list.add(123); list.add...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,952
精华内容 1,980
关键字:

listsetmap区别