关于集合
1. 集合的概念
2.集合的继承结构图
3.总结
重点:
4.集合Collection的迭代器 Iterator
1.生成集合的迭代器对象
Collection collection =new ArrayList();//初始化一个集合对象,因为collection是一个接口,无法创建实例,所以指向子类对象ArrayList
collection.add(1);//向添加中添加元素
collection.add("23");
collection.add(23.5);
Iterator iterator= collection.iterator();//获取迭代器对象
2.迭代器图解
注意:迭代器的初始指向位置不在集合的第一个节点,而是在集合之前
文本* 强调文本
3.迭代器常用方法的使用(next() 和hasNext()方法)
boolean hasNext()
如果仍有元素可以迭代,则返回 true。
E next()
返回迭代的下一个元素。
if (iterator.hasNext()){//判断下一步是否还可以进行迭代,true/false
System.out.println(iterator.next());//向前迭代一位
}
4. contains和remove方法的应用
contains(Object o)
如果此 collection 包含指定的元素,则返回 true。
remove(Object o)
从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
两方法的底层都会调用 其参数(Object o)的equals()方法,所以 集合中储存的这个类应该重写equals()方法。
5.List特有的方法
6.泛型机制
Java 泛型(generics)是 JDK 5 中引入的一个新特性,
泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
注意:泛型机制只在编译阶段起作用,只是给编译器参考的(运行阶段泛型没用)
使用泛型的优点:
1.集合中的存储的元素类型进行了统一。
2.从集合中取出的元素类型是泛型指定的类型,不需要向下转型(强制转换)。
缺点:导致集合中存储的元素缺乏多样性。
自动类型判断机制(又称钻石表达式)
7.增强for循环(foreach)
缺点:没有下标。
8.HashSet集合和TreeSet的特点
1.HashSet特点:无序且不可重复。()
**放到Haset集合中的元素实际是放到map的key部分 **
2.TreeSet:无序(存入与取出的顺序不同)不可重复,但存储的元素可以按照大小顺序排序。
9.Map接口及常用方法
1.Map集合和Collection集合没有关系。
2.是以键值对的形式存储元素。
3.key和value都是存储java对象的内存地址。
4.所有Map集合的Key特点:无序不可重复
10.Map集合的遍历
1.方法一:获取所有的key,通过遍历key,来遍历value.
2.方法二:将整个map转换为set集合,然后再遍历取出。
11.哈希表的数据结构
哈希表是一种单链表与数组相结合的数据结构,具有数组和单链表的共同优点。
12.HashMap
13. Properties
目前只需要掌握Properties属性类对象的相关方法即可。
Properties是一个Map集合,继承Hashtable,Properties的key和value都是String类型。
Properties被称为属性类对象。
Properties是线程安全的。
*/
public class PropertiesTest01 {
public static void main(String[] args) {
// 创建一个Properties对象
Properties pro = new Properties();
// 需要掌握Properties的两个方法,一个存,一个取。
pro.setProperty("url", "jdbc:mysql://localhost:3306/bjpowernode");
pro.setProperty("driver","com.mysql.jdbc.Driver");
pro.setProperty("username", "root");
pro.setProperty("password", "123");
// 通过key获取value
String url = pro.getProperty("url");
String driver = pro.getProperty("driver");
String username = pro.getProperty("username");
String password = pro.getProperty("password");
System.out.println(url);
System.out.println(driver);
System.out.println(username);
System.out.println(password);
}
}
注意: setProperty的原理
14.TreeSet
14.TreeSet的两种比较器
15.TreeSet需要掌握
16.Collection 工具类(变线程安全和排序)
1.变线程安全
2.对list集合排序
3.对set集合排序