请问Java中List,Set,Map在用法上有什么区别

小编 583

请问Java中List,Set,Map在用法上有以下区别:1.接口不同;2.存储特点不同;3.检索效率不同;4.实现类不同;5.常见方法不同。接口不同在于,List和Set都是继承自Collection接口,而Map是独立接口。

1.接口不同

List和Set都是单列集合,继承自Collection接口,而Collection代表的是单个元素对象的序列;Map是双列集合,是键值对的形式,独立接口。

2.存储特点不同

List是一种有序集合,按照对象进入的顺序保存对象,并且允许重复对象,插入多个null值。

Set是无序的集合,不是按照对象进入的顺序保存,不可重复,只允许一个null值出现。

Map以键值对的方式存储元素,根据键得到值,所有Map集合的Key是无序不可重复的,key和value都是引用数据类型,存的都是内存的地址。

3.检索效率不同

List和数组类似,可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。

Set检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

4.实现类不同

List的实现类有LinkedList,ArrayList,Vector。

Set的实现类有HashSet,TreeSet,LinkedHashSet。

Map的实现类有HashMap,HashTable,TreeMap,ConcurrentHashMap,LinkedHashMap,weakHashMap。

5.常见方法不同

List的常见方法有:add( )、remove( )、clear( )、get( )、contains( )、size( );

Set的常见方法有:add( )、remove( )、clear( )、contains( )、size( );

Map的常见方法有:put( )、get( )、remove( )、clear( )、containsKey( )、containsValue( )、keySet( )、values( )、size( )。

延伸阅读

Java集合类基本概念

在编程中,java集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在java.util.concurrent包下提供了一些多线程支持的集合类。

Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java中的集合类可以分为两大类:一类是实现Collection接口;另一类是实现Map接口。

Collection是一个基本的集合接口,Collection中可以容纳一组集合元素(Element),它有两个重要的子接口List和Set。

Map没有继承Collection接口,与Collection是并列关系。Map提供键(key)到值(value)的映射。一个Map中不能包含相同的键,每个键只能映射一个值。

回复

我来回复
  • 暂无回复内容

站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部