List集合
特点:
可以有重复的元素
有序的(数据的存取顺序一致)
ArrayList:
特点:
线程不同步的,速度快
底层实现 数组
Vector:
特点:
线程同步速度慢
底层实现 数组
LinkedList:
特点:
线程不同步,速度快
底层实现 链表
Set集合:
特点:
元素唯一
无序(存入和取出数据不一致)
HashSet:
特点:
底层实现 哈希表
保证元素唯一性:重写hashCode()与equals()方法
LinkedHashSet:
特点:底层实现是 哈希表 + 链表
TreeSet:
特点:
底层实现是二叉树结构
保证数据的唯一和排序(实现自然排序接口或者实现比较器接口,排序有自己来定义规则)
Map集合:
特点:
Map集合中的键是唯一的
Map集合中的值是可以重复的
HashMap:
特点:
底层是哈希表结构
保证HashMap集合中的key唯一:重写 hashCode()和equals()
TreeMap:
特点:底层是二叉树结构
排序:按照自然顺序 或者 比较器排序
保证TreeMap集合中的key唯一:实现自然排序接口 或者实现比较器接口
Hashtable:
特点:
线程安全 效率低
不允许使用null值和null键
面试题:
HashMap与Hashtable的区别?
HashMap:线程是不安全的,效率高。允许使用null值和null键
Hashtable: 线程是安全的,效率低。不允许使用null值和null键
数据结构:
线性表、链表、栈、队列、树、图、哈希表
Stack堆栈
特点:先进后出
泛型:
<>里面 用来指定元素的数据类型,不能是基本数据类型
增强for循环:
用来替代迭代器jdk5出现的
什么时候使用迭代器 增强for 、普通for?
需要操作索引的时候使用普通for 其他使用迭代器 增强for
面试题:
Collections 与 Collection区别?
1.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。
2.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化。
Collection:单列集合的顶层接口
Map:双列集合的顶层接口
Collections:集合的工具类