`

List,Set,Map用法以及区别

    博客分类:
  • Java
 
阅读更多
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三个接口,存取元素时,各有什么特点?


import java.util.*;

public class Test
{
public static void main(String [] arge)
{

List list = new ArrayList();
list.add(0, "a");
list.add(1, "b");
list.add(2, "c");
list.add(3, "d");

while(Iterator it = list.iterator();it.hasNext())
{
   Object element = it.next();
   System.out.println (element);
}
}
}
List、Map、Set
List 通过下标来存取 和值来存取
Map 键值对应来存取 
set 存取元素是无序的

--------------------------------------------------------------------

package com.operation;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class User {

private Integer userId;

private String userName;

private String address;

public User(int userId, String userName, String address) {
   this.userId = userId;
   this.userName = userName;
   this.address = address;
}


public String getAddress() {
   return address;
}


public void setAddress(String address) {
   this.address = address;
}


public Integer getUserId() {
   return userId;
}


public void setUserId(Integer userId) {
   this.userId = userId;
}


public String getUserName() {
   return userName;
}


public void setUserName(String userName) {
   this.userName = userName;
}


public static void main(String[] args) {
//   Map<Integer, User> map = new TreeMap<Integer, User>();
//   map.put(1, new User(1,"李伟","beijing"));
//   map.put(2, new User(2,"王文军","beijing"));
//  
//   map.put(4, new User(2,"abc","beijing"));
//   map.put(5, new User(2,"abc","beijing"));
//  
//  
//  
//   Set<Integer> keys = map.keySet();
//  
////   Iterator<Integer> it = keys.iterator();
////   while (it.hasNext()) {
////    Integer key = it.next();
////    User user = map.get(key);
////    System.out.println("key = " + key + "\t" + "value = " + user.getUserName());
////   }
//  
//   for (Integer key : keys) {
//    User user1 = map.get(key);
//    System.out.println("key = " + key + "\t" + "value = " + user1.getUserName());
//   }
  

  
   Set<String> set = new HashSet<String>();
   set.add("a");
   set.add("b");
   set.add("c");
   set.add("d");
   set.add("d");
   set.add("d");
   set.add("d");
   set.add("uuu");
   set.add("e");
  
  
   Iterator<String> it = set.iterator();
   while (it.hasNext()) {
    System.out.println(it.next());
   }
  
}

}


分享到:
评论
5 楼 zhaozhihang 2015-03-12  
代码,第十四行,有语法错误。
4 楼 大头成为火影 2014-08-30  
3 楼 zstzst 2014-06-11  
2 楼 itabclichao 2014-02-13  
有用,
1 楼 yufeng0471 2011-10-15  

相关推荐

    List,set,Map 的用法和区别

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

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

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

    List set map集合容器的区别

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

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

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

    集合概述set、List、Map

    ### 集合概述:set、List、Map #### 一、集合框架概述 ##### 1.1.1 容器简介 在Java编程中,集合框架是一个非常重要的概念,它提供了一种灵活的方式来存储、操作和管理不同类型的对象集合。集合框架的主要目标是...

    set,list,map区别与联系

    ### set、list、map的区别与联系 #### 一、概述 在Java编程语言中,`set`、`list`和`map`是非常重要的数据结构,它们分别代表了不同的集合类型,各自有着独特的特性与用途。 - **List**:有序集合,可以包含重复...

    java中list、set和map 的区别

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

    List Set Map以及子类的比较 .docx

    Collection 集合框架的顶级接口是 Collection,下面有三个主要的子接口:List、Set 和 Map。 List 集合是一种有序集合,可以存储重复元素,每个元素都有索引。ArrayList 和 LinkedList 是 List 集合的两个常用的...

    Java_Collection_List-Set-Map.zip_list set map

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

    Collection List Set Map 区别记忆

    其中,`Collection`、`List`、`Set`和`Map`是四大基本接口,它们各自代表了一种特定的数据结构,有着不同的特性和用途。下面我们将详细探讨这些接口的区别及其相关知识点。 首先,`Collection`是所有集合类的顶级...

    Dart 集合类型List Set Map详解 以及循环语句 forEach map where any every.zip

    本教程将深入探讨三种主要的集合类型:List、Set和Map,以及几种常用的循环语句,如forEach、map、where、any和every。这些概念对于理解Dart中的数据处理至关重要。 1. **List**: List是有序的元素集合,可以包含...

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

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

    set.list.map接口

    在Java编程语言中,集合框架是处理对象的重要工具,其中包括Set、List和Map三大接口。这些接口提供了多种数据结构和操作方法,使得开发者能够高效地组织和管理数据。 1. **Set接口**: Set接口表示一个不包含重复...

    List和Set使用retainAll方法的比较

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

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

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

    Java集合:Collection、List、Set、Map使用详解

    本文将深入探讨Java集合框架中的四个主要接口:Collection、List、Set和Map,以及它们的实现原理。 ### 集合框架概述 集合框架是Java API中用于存储和管理对象的统一框架。它为数据结构提供了抽象接口,使得程序员...

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

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

    Set,List,Map的区别

    ### Set,List,Map 的区别与应用 在 Java 编程语言中,集合框架是一个非常重要的概念,它提供了存储和操作对象的方式。集合框架主要包括三种类型的集合:`Set`、`List` 和 `Map`。这三种集合各自拥有独特的特性和...

    Java中List Set和Map之间的区别_动力节点Java学院整理

    Java中List、Set和Map之间的区别 Java集合是Java编程语言中的一种重要数据结构,分为三种类型:Set(集)、List(列表)和Map(映射)。在Java中,List、Set和Map都是集合的实现类,它们之间有着本质的区别。 List...

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

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

Global site tag (gtag.js) - Google Analytics