Java 中 List、Set 和 Map 接口的对比

发布时间: 更新时间: 总字数:1533 阅读时间:4m 作者: IP上海 分享 网址

Java中List、Set和Map接口的对比

Collection接口

Collection 层次结构中的根接口,即Collection是集合类的基本接口。它的子接口有List、Set。

接口

List是一种能包含重复元素的有序集合(也称序列)。它实现的接口有ArrayList、LinkedList、Stack等。

Set接口

数学上的集合(set)??

Set是一种不包含重复元素的Collection。更正式地说,set不包含满足e1.equals(e2)的元素对e1和e2,并且最多包含一个null元素。

下表是List、Set与Map及其以实现类的对比

List接口Set接口Map接口
参数的含义该容器所存放值的类型该容器所存放值的类型K - 此映射所维护的键的类型,V - 映射值的类型
所在包java.utiljava.utiljava.util
父类Collection接口Collection接口
区别List是一种能包含重复元素的有序集合。包含除父类集成的接口方法以外的方法。Set中的元素是不重复的,且至多包含一个null。仅包含从父类集成的接口方法。将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。

以下区别各自的常用以实现类

已实现的类ArrayList 类HashSet 类HashMap 类
参数的含义该容器所存放值的类型该容器所存放值的类型K - 此映射所维护的键的类型,V - 映射值的类型
说明List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括null 在内的所有元素。此类实现 Set 接口,由哈希表(实际上是一个HashMap实例)支持。它不保证 set的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。
add()将指定的元素添加到此列表的尾部或指定的位置。add(E e)如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。put(K key, V value)在此映射中关联指定值与指定键。
remove()移除此列表中指定位置上的元素或指定的元素。remove(Object o)如果 set中存在指定的元素,则将其移除(可选操作)。remove(Object key)从此映射中移除指定键的映射关系(如果存在)。
set(int index,E element)用指定的元素替代此列表中指定位置上的元素。
get(int index)返回此列表中指定位置上的元素。contains(Object o)如果set 包含指定的元素,则返回true。get(Object key)返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回null。
长度size()返回此列表中的元素数。size()返回 set 中的元素数(其容量)。size()返回此映射中的键-值映射关系数。
遍历方法iterator()返回按适当顺序在列表的元素上进行迭代的迭代器。iterator()返回在此 set 中的元素上进行迭代的迭代器。keySet()返回此映射中所包含的键的 Set 视图。在通过get(key)方法获得value
遍历方法1. iterator()返回按适当顺序在列表的元素上进行迭代的迭代器。2. toArray()返回按适当顺序包含列表中的所有元素的数组(从第一个元素到最后一个元素)。3. 通过list.size()获取长度后,逐个遍历List集合1. iterator()返回在此 set 中的元素上进行迭代的迭代器。2. toArray()返回一个包含 set中所有元素的数组。keySet()返回此映射中所包含的键的 Set 视图。在通过get(key)方法获得value
contains()方法contains(Object o)如果列表包含指定的元素,则返回 true。contains(Object o)如果set 包含指定的元素,则返回 true。containsKey(Object key)如果此映射包含对于指定键的映射关系,则返回true。Boolean containsValue(Objectvalue) 如果此映射将一个或多个键映射到指定值,则返回 true。

toArray使用例子:

Object[] str = set.toArray();
for(int i=0; i< ; i++) {
    System.out.println(str[i].toString());
}
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数