五、集合
1.主要集合概述
/*
集合继承结构图:
*
Map集合:
2.Collection 和 Iterator
Collection常用方法:
集合的遍历 / 迭代 :
使用迭代器对象 Iterator
使用Arraylist集合 (有序可重复):
使用HashSet集合 (无序不可重复):
无序:存进去和取出来的顺序不一定相同
不可重复:存储100.不能再存储100
2.1 Collection集合中的contains() 方法:
重写equals方法:
集合元素的remove:
重点:当集合的结构发生改变时,迭代器必须重新获取,如果还是用
以前老的迭代器,会出现异常:
java.util.ConcurrenModificationException
重点:在迭代集合元素的过程中,不能调用集合对象的remove方法
删除元素:c .remove(0); 迭代过程中不能这样。
会出现异常。
重点:在迭代元素的过程当中,一定要使用迭代器Iterator
的remove方法,删除元素,不要使用集合自带的remove方
法删除元素。
3.list接口
3.1 add()方法:添加元素
3.2 list集合的遍历:
3.3 index()方法:获取索引
3.4 remove 和 set :删除和修改元素
3.5 Array List 集合:
3.6 LinkedList 集合
- 单向链表数据结构
- 双向链表数据结构
链表的缺点:
LinkedList :
3.6 Vector 集合
线程安全:
4. Set接口
4.1 泛型
泛型的概念:
例子1 :
自动类型判断机制(又称钻石表达式):
4.2 自定义泛型
4.3 foreach 循环
语法: for(元素类型 变量名 : 数组或集合){
System.out.println(变量名);
}
使用foreach遍历集合:
4.4 HashSet 集合
特点:无序不可重复
4.5 TreeSet
特点:
1. 无序不可重复,但是存储的元素可以自动按照大小排序!
称为:可排序集合。
2. 无序:这里的无序指的是存进去的顺序和取出来的顺序不同,
并且没有下标。
结果:
5.Map接口
5.1 Map 接口 结构图和常用方法
结构图:
Map 接口常用的方法:
5.2 Map集合的遍历:
- 第一种方式:
第二种方式:
5.3 HashMap 集合
哈希表 / 散列表:一维数组,这个数组中每一个元素是一个
单向链表。(数组和链表的结合体)
5.4 Hashtable 集合
- hashMap 集合与 hashtable 集合的区别
- Hash Map集合key部分允许为空值
2. HashTable的Key 和value 不能为null
- Hashtable的简述
5.5 properties 属性类
- properties 的存取方法:
5.5 TreeMap
对于自定义类型来说,TreeSet不可以排序
** 自定义类型实现comparable 接口:**
例子2:
TreeSet集合中元素可排序的第二种方式:使用比较器的方式。
6. 自平衡二叉树
采用中序遍历取出: