关于集合

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集合排序
在这里插入图片描述

17.需要掌握

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值