Java基础——集合2

本文详细介绍了Java中的泛型概念、泛型类与方法,以及泛型通配符的使用。接着,文章深入探讨了Set集合,包括其特点、遍历方式、TreeSet和HashSet的实现与比较器的使用。此外,还讲解了哈希表的原理和HashSet的去重机制。最后,简要概述了Map集合及其常用方法和遍历方式。
摘要由CSDN通过智能技术生成

泛型

泛型
  1. 念:是一个未知的数据类型,是一个参数化类型
  2. 使用场景:需要定义一个类型,类型中的属性所属的数据类型不确定,或者类中的方法参数和返回值类型并不确定,使用一个符号来表示这个不确定的类型,这个符号就称之为泛型。
  3. 泛型的使用:
    在使用带着泛型的类型时,需要确定这个泛型是哪一个类型。确定是哪一个类型,类中 就只能使用对应的类型。
  4. 使用泛型好处:
    1、可以提高代码的扩展性
    2、不需要对获取的每个数据进行强转
    3、提前将问题暴露在编译时期
  5. 注意事项:
    1、前后两个泛型要保持一致
    2、如果前面的泛型确定了类型,后面的泛型可以不用写
    3、泛型要定义在类后的尖括号中
    4、泛型只能表示引用数据类型,不能表示基本数据类型
泛型类
  1. 概念:在定义类型的时候使用了泛型的类
  2. 格式:
    class 类名<泛型>{
    }
  3. 说明:
    1、如果要在类中使用某个泛型的话,需要先在类上进行声明,声明之后才可以使用
    2、类中使用了几个泛型,需要在类上声明几个泛型
    3、泛型符号:只要是一个合法的标识符即可。T E W Q
    4、泛型在定义的时候不确定,但是在使用的时候就要确定是哪一个类型
泛型方法
  1. 概念:在定义方法的时候,带着泛型的方法。
  2. 格式:
    修饰符 <泛型的声明> 方法名(){}
  3. 说明:
    1、如果需要在方法中使用泛型,首先需要在方法上先声明泛型
    2、方法上声明哪一个泛型,就只能使用哪一个泛型
    3、如果这个方法是一个静态方法,必须在方法上声明泛型,不能使用类上声明的泛型
    4、如果这个方法是一个非静态的方法,可以使用类上声明的泛型,也可以自己定义
泛型通配符
  1. 概念:广泛的泛型。
  2. 分类:
    ?:类型通配符,所有的类型
    ? extends E:类型通配符上限,表示类型E的子类或者E类型
    ? super E:类型通配符下限,表示类型E的父类泛型或者E类型

Set集合

Set集合
  1. 概述:该集合继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。
  2. 特点:
    (1)在java.util包中,使用需要导包
    (2)该类有两个实现类:HashSet 和 TreeSet
    (3)该类元素特点:
    不可重复:集合中不能存储相同的元素值
    没有索引:集合中的元素没有一个特定的符号来表示
    无序:元素存储的顺序和取出的顺序不能保证一致
Set集合的遍历
  1. 使用迭代器遍历
    (1)获取迭代器对象
    (2)hasNest方法判断集合中是否有下一个元素
    (3)next方法获取下一个元素
  2. 使用增强for遍历
    格式:
    for(元素数据类型 元素名称:集合名称){
    该元素的使用方式
    }
  3. 转数组遍历:
    使用不带泛型转数组:toArray();
    转数组之后,返回的数组是Object类型,使用数据的特殊方法时,需要向下转型
    使用带着泛型转数组:toArray(T []):
    转数组之后,返回的数组类型就是传递的数组类型,不需要向下转型
    注意:
    (1)如果传入的数组空间正好够用,将集合中的元素存储到传递的数组中
    (2)如果传入的数组空间不够用,系统会新建一个相同数据类型的数组,来存储集合中的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值