java集合

集合总结

集合继承结构图_Collection 部分

在这里插入图片描述集合继承结构图_Map 部分
在这里插入图片描述1.1 主要集合概述

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

1.2 Collection 和 Iterator

boolean add(E o) 
确保此 collection 包含指定的元素(可选操作)。
boolean addAll(Collection<? extends E> c) 
将指定 collection 中的所有元素都添加到此
collection 中(可选操作)。
void clear() 
移除此 collection 中的所有元素(可选操作)。
boolean contains(Object o) 
如果此 collection 包含指定的元素,则返回 trueboolean containsAll(Collection<?> c) 
如果此 collection 包含指定 collection 中的所有
元素,则返回 trueboolean equals(Object o) 
比较此 collection 与指定对象是否相等。
int hashCode() 
返回此 collection 的哈希码值。
boolean isEmpty() 
如果此 collection 不包含元素,则返回 trueIterator<E> 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> T[] toArray(T[] a) 
返回包含此 collection 中所有元素的数组;返回数组
的运行时类型与指定数组的运行时类型相同。

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

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

面试题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值