`

java中map list set 用法以及区别

 
阅读更多

转自:http://j2eemylove.iteye.com/blog/1195823

List,Set,Map是否继承自Collection接口?

答:List,Set是,Map不是。

如图:

Collection

  ├List

  │├LinkedList

  │├ArrayList

  │└Vector

  │ └Stack

  └Set

  Map

  ├Hashtable

  ├HashMap

  └WeakHashMap

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特点:元素有放入顺序,元素可重复
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 用的比较多. 其次map 最后set 至于什么情况下使用什么集合.看情况了. 也不好说.也没那么绝对.
看了下面的这个就更容易明白了
写一段代码,遍历一个List中的元素
List、Map、Set三个接口,存取元素时,各有什么特点?

Java代码 复制代码收藏代码
  1. importjava.util.*;
  2. publicclassTest
  3. {
  4. publicstaticvoidmain(String[]arge)
  5. {
  6. Listlist=newArrayList();
  7. list.add(0,"a");
  8. list.add(1,"b");
  9. list.add(2,"c");
  10. list.add(3,"d");
  11. while(Iteratorit=list.iterator();it.hasNext())
  12. {
  13. Objectelement=it.next();
  14. System.out.println(element);
  15. }
  16. }
  17. }
  18. List、Map、Set
  19. List通过下标来存取和值来存取
  20. Map键值对应来存取
  21. set存取元素是无序的
  22. --------------------------------------------------------------------
  23. packagecom.operation;
  24. importjava.util.ArrayList;
  25. importjava.util.HashSet;
  26. importjava.util.Iterator;
  27. importjava.util.List;
  28. importjava.util.Set;
  29. importjava.util.TreeSet;
  30. publicclassUser{
  31. privateIntegeruserId;
  32. privateStringuserName;
  33. privateStringaddress;
  34. publicUser(intuserId,StringuserName,Stringaddress){
  35. this.userId=userId;
  36. this.userName=userName;
  37. this.address=address;
  38. }
  39. publicStringgetAddress(){
  40. returnaddress;
  41. }
  42. publicvoidsetAddress(Stringaddress){
  43. this.address=address;
  44. }
  45. publicIntegergetUserId(){
  46. returnuserId;
  47. }
  48. publicvoidsetUserId(IntegeruserId){
  49. this.userId=userId;
  50. }
  51. publicStringgetUserName(){
  52. returnuserName;
  53. }
  54. publicvoidsetUserName(StringuserName){
  55. this.userName=userName;
  56. }
  57. publicstaticvoidmain(String[]args){
  58. //Map<Integer,User>map=newTreeMap<Integer,User>();
  59. //map.put(1,newUser(1,"李伟","beijing"));
  60. //map.put(2,newUser(2,"王文军","beijing"));
  61. //
  62. //map.put(4,newUser(2,"abc","beijing"));
  63. //map.put(5,newUser(2,"abc","beijing"));
  64. //
  65. //
  66. //
  67. //Set<Integer>keys=map.keySet();
  68. //
  69. ////Iterator<Integer>it=keys.iterator();
  70. ////while(it.hasNext()){
  71. ////Integerkey=it.next();
  72. ////Useruser=map.get(key);
  73. ////System.out.println("key="+key+"\t"+"value="+user.getUserName());
  74. ////}
  75. //
  76. //for(Integerkey:keys){
  77. //Useruser1=map.get(key);
  78. //System.out.println("key="+key+"\t"+"value="+user1.getUserName());
  79. //}
  80. Set<String>set=newHashSet<String>();
  81. set.add("a");
  82. set.add("b");
  83. set.add("c");
  84. set.add("d");
  85. set.add("d");
  86. set.add("d");
  87. set.add("d");
  88. set.add("uuu");
  89. set.add("e");
  90. Iterator<String>it=set.iterator();
  91. while(it.hasNext()){
  92. System.out.println(it.next());
  93. }
  94. }
  95. }
分享到:
评论

相关推荐

    java中set、list和map的使用方法实例

    // java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...

    java中list、set和map 的区别

    ### Java中List、Set和Map的区别 在Java编程语言中,`List`、`Set`和`Map`是集合框架中的三个核心接口,它们分别代表了不同类型的集合数据结构,各自有着独特的特性和应用场景。 #### List `List`接口是最常用的...

    Java操作Redis,实现String、List、Map的set和get

    本文将深入探讨如何使用Java来操作Redis,包括设置和获取String、List和Map类型的数据,并且会介绍如何进行封装和单元测试。 首先,要与Redis进行交互,我们需要引入Jedis库,这是Java最常用的Redis客户端。在你的...

    java中的list、map、set存储方式及使用方法

    详细介绍了java中的list、map、set的存储方式及使用方法,涵盖了多个java大侠的见解,让读者充分了解list、map、set的区别和使用

    List,set,Map 的用法和区别

    Java 集合框架中 List、Set、Map 的用法和区别 Java 集合框架(Java Collections Framework)是 Java 语言中的一个重要组件,提供了一些基本的数据结构和算法来操作和存储数据。其中,List、Set、Map 是三个非常...

    java中三种集合set、map、list的区别与联系

    在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中最常用的是`Set`、`Map`和`List`。这三种集合类型各自具有独特的特性和用途,理解它们之间的区别与联系对于有效地使用Java进行数据管理至关重要...

    java中map集合的用法.doc

    Java中的Map接口是Java集合框架的重要组成部分,它用于存储键值对的数据结构。Map不同于List,List是以索引来访问元素,而Map则是通过键(key)来查找对应的值(value)。Map接口定义了一系列方法,使得我们可以对...

    java中map集合的用法

    本文将详细介绍Java中Map集合的用法。 **1. Map接口概述** Map接口位于`java.util`包下,它定义了一些基本的操作方法,如put、get、remove等。Map集合中常用的实现类有HashMap、TreeMap、LinkedHashMap等,它们各自...

    java的序列 map list set sequene

    例如,可能包含如何使用put()方法向Map中添加元素,如何使用add()方法向List和Set中添加元素,以及如何使用get()方法获取元素等基本操作。 总的来说,熟悉和掌握Map、List和Set接口以及序列化是Java编程的基础,...

    Collection,List,Set和_Map用法和区别

    Collection, List, Set 和 Map 用法和区别 Collection 是 Java 中的一种对象...Collection、List、Set 和 Map 等集合类是 Java 中非常重要的一部分,需要深入了解其用法和区别,以便更好地使用集合类来实现业务逻辑。

    java中List、Array、Map、Set等集合相互转换

    今天,我们将详细介绍 Java 中 List、Array、Map、Set 等集合相互转换的方法。 List 转换为 Array 在 Java 中,将 List 转换为 Array 可以使用 toArray() 方法,例如: ```java List&lt;String&gt; list = new ArrayList...

    JAVA_MAP_+_LIST_SET和MAP的区别+_Map的三种遍历方法

    ### JAVA Map、List、Set 的区别 #### 一、概述 在 Java 集合框架中,`Map`、`List` 和 `Set` 是三种非常重要的数据结构,它们各自有着不同的特性和用途。 - **Map**:主要用于存储键值对(key-value pairs)。键...

    Java-list-set-map.zip_Java list

    在Java编程语言中,集合框架是处理对象组的重要工具,其中`List`、`Set`和`Map`是三大核心接口。本资料“Java list set map.zip”专注于讲解这些接口及其相关实现,帮助开发者深入理解Java集合类的使用。 首先,`...

    List set map集合容器的区别

    根据给定文件的信息,我们可以详细地探讨一下Java中几种主要的集合容器——List、Set以及Map的区别,并且深入了解它们各自的特性和应用场景。 ### 一、List #### 1. ArrayList - **特点**:`ArrayList`是基于动态...

    Java集合类List-Set-Map的区别和联系.doc

    Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的介绍。 一、Array、Arrays 和 Collection...

    List和Set使用retainAll方法的比较

    本文将深入探讨List和Set在使用`retainAll`方法时的效率差异,并通过`ListAndRetainAll.java`和`SetAndRetainAll.java`两个示例代码来具体分析。 首先,让我们了解`retainAll`方法的基本概念。`retainAll`是Java...

    Java_Collection_List-Set-Map.zip_list set map

    在Java编程语言中,集合框架是处理对象组的重要工具,主要包括List、Set和Map三大接口。这些接口由Java Collection Framework提供,它是一个统一的架构,用于存储和操作各种类型的对象。接下来,我们将深入探讨这三...

    Java中的Set,List,Map的区别.pdf

    总的来说,Java中的Set、List和Map接口及其实现类为不同的数据存储需求提供了灵活的选择。Set适合存储不重复元素,List适合存储有序并可能重复的元素,而Map则用于存储键值对应的数据。理解它们的特性和使用场景,有...

    浅谈Java中的Set、List、Map的区别.docx

    Java 中的 Set、List、Map 的区别 Java 中的集合可以存储和操作数目不固定的一组数据。所有的 Java 集合都位于 java.util 包中!Java 集合只能存放引用类型的数据,不能存放基本数据类型。 Collection 接口是最...

Global site tag (gtag.js) - Google Analytics