java集合

java集合,第1张

java集合

集合总结

集合继承结构图_Collection 部分

集合继承结构图_Map 部分
1.1 主要集合概述

Java 集合主要有 3 种重要的类型:
   List:是一个有序集合,可以放重复的数据
   Set:是一个无序集合,不允许放重复的数据
   Map:是一个无序集合,集合中包含一个键对象,一个值对象,
        键对象不允许重复,值对象可以重复(身份z号—姓名)

1.2 Collection 和 Iterator

boolean add(E o) 
确保此 collection 包含指定的元素(可选 *** 作)。
boolean addAll(Collection c) 
将指定 collection 中的所有元素都添加到此
collection 中(可选 *** 作)。
void clear() 
移除此 collection 中的所有元素(可选 *** 作)。
boolean contains(Object o) 
如果此 collection 包含指定的元素,则返回 true。
boolean containsAll(Collection c) 
如果此 collection 包含指定 collection 中的所有
元素,则返回 true。
boolean equals(Object o) 
比较此 collection 与指定对象是否相等。
int hashCode() 
返回此 collection 的哈希码值。
boolean isEmpty() 
如果此 collection 不包含元素,则返回 true。
Iterator iterator() 
返回在此 collection 的元素上进行迭代的迭代器。
boolean remove(Object o) 
从此 collection 中移除指定元素的单个实例,如果存
在的话(可选 *** 作)。
boolean removeAll(Collection c) 
移除此 collection 中那些也包含在指定 collection 
中的所有元素(可选 *** 作)。
boolean retainAll(Collection c) 
仅保留此 collection 中那些也包含在指定
collection 的元素(可选 *** 作)。
int size() 
返回此 collection 中的元素数。
Object[] toArray() 
返回包含此 collection 中所有元素的数组。
 T[] toArray(T[] a) 
返回包含此 collection 中所有元素的数组;返回数组
的运行时类型与指定数组的运行时类型相同。

关于 Iterator 接口说明,Iterator 称为迭代接口,通过此接口可以遍历集合中的数据,此接口主
要方法为:

boolean hasNext() 
如果仍有元素可以迭代,则返回 true。
E next() 
返回迭代的下一个元素。

面试题

  1. ArrayList 和 linkedList 有何区别?
		ArrayList 和 linkedList 两者都实现了 List 接口,但是它们之间有些不同。
		(1)ArrayList 是由 Array 所支持的基于一个索引的数据结构,所以它提供对元素的随机访
		问,复杂度为 O(1),但 linkedList 存储一系列的节点数据,每个节点都与前一个和下一个
		节点相连接。所以,尽管有使用索引获取元素的方法,内部实现是从起始点开始遍历,遍
		历到索引的节点然后返回元素,时间复杂度为 O(n),比 ArrayList 要慢。
		(2)与 ArrayList 相比,在 linkedList 中插入、添加和删除一个元素会更快,因为在一个
		元素被插入到中间的时候,不会涉及改变数组的大小,或更新索引。
		(3)linkedList 比 ArrayList 消耗更多的内存,因为 linkedList 中的每个节点存储了前后节
		点的引用。
  2. HashMap 和 HashTable 有何不同?
		(1)HashMap 允许 key 和 value 为 null,而 HashTable 不允许。
		(2)HashTable 是同步的,而 HashMap 不是。所以 HashMap 适合单线程环境,
		HashTable 适合多线程环境。
		(3)在 Java1.4 中引入了 linkedHashMap,HashMap 的一个子类,假如你想要遍历顺序,
		你很容易从 HashMap 转向 linkedHashMap,但是 HashTable 不是这样的,它的顺序是不
		可预知的。
		(4)HashMap 提供对 key 的 Set 进行遍历,因此它是 fail-fast 的,但 HashTable 提供对
		key 的 Enumeration 进行遍历,它不支持 fail-fast。
		(5)HashTable 被认为是个遗留的类,如果你寻求在迭代的时候修改 Map,你应该使用
		CocurrentHashMap。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5712426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存