集合是数据存储中,重要的容器对象。
单列集合
- Collection 单例集合根接口
- List 实现了List接口的集合类 特点: 有序,可重复
- ArrayList 实现了List接口 底层使用数组 特点:速度快,增删慢
- LinkedList 底层使用链表数据结构, 特点: 查询速度慢,增删快
- Vector 底层使用数组 特点:对比ArrayList线程安全,效率低
- Set 实现了Set接口的集合类 特点: 无序, 不可重复
- HashSet 底层使用Hash表实现, 特点: 存取速度快
- TreeSet 底层使用二叉树实现 特点: 排序存储
- List 实现了List接口的集合类 特点: 有序,可重复
<pre>注意: HashSet <h6>1.HashSet先调用HashCode方法算出Hash值,对比Hash值.相同进行第二步,建议重写HashCode方法
</h6><h6>2.调用对象的Equals方法,建议重写Equals方法</h6>
</pre>
<pre>注意:TreeSet<h6>1.元素具备自然排序的特点,就按照自然顺序进行排序</h6><h6>2.如果元素不具备自然排序的特点,那么元素需要实现Comparable接口,自定义比较规则,重写CompareTo方法</h6></pre>
双列集合
- Map 键值对存储 键不可重复,值可重复
- HashMap 底层哈希表
- TreeMap 底层二叉树
ArrayList Demo
public static void main(String[] args) {
ArrayList<String> array = new ArrayList<String>();
array.add("First");
array.add("Second");
array.add("Three");
for (int i = 0; i < array.size(); i++) {
System.out.println(array.get(i));
}
}
Console
First
Second
Three
HashSet Demo
public static void main(String[] args) {
HashSet<String> hSet = new HashSet<>();
hSet.add("First");
hSet.add("Second");
hSet.add("Three");
// Iterator 遍历
Iterator<String> it = hSet.iterator();
while(it.hasNext()){
System.out.print(it.next() + ",");
}
}
// 注意 :while中不能直接修改元素个数
Console
Second,First,Three,
HashMap Demo
public static void main(String[] args) {
HashMap<String,Integer> map = new HashMap<>();
map.put("Fisrt", 1);
map.put("Second",2);
map.put("Three", 3);
Set<Entry<String,Integer>> entrys= map.entrySet();
// 遍历
for (Entry<String, Integer> entry : entrys) {
System.out.println("Key :" + entry.getKey() + "Value :" + entry.getValue());
}
}
Console
Key :SecondValue :2
Key :FisrtValue :1
Key :ThreeValue :3
给个github follow me的链接,上面有很多初学者可供学习的资料,项目.
<a>https://github.com/SuperZee</a>