首页 > 软件开发 > JAVA >

java入门基础笔记整理:[13]Set集合

来源:互联网 2023-03-16 19:32:07 419

一.Set集合n5L办公区 - 实用经验教程分享!

1.什么是Set集合n5L办公区 - 实用经验教程分享!

  • Set集合和List集合类似, 都是可以用来存储对象, 长度可变.n5L办公区 - 实用经验教程分享!

  • Set集合和List不同的是: 没有重复元素, 没有存储顺序.n5L办公区 - 实用经验教程分享!

2.HashSetn5L办公区 - 实用经验教程分享!

  • HashSet是Set的一个实现类, 它可以做到去重复, 效率非常高.n5L办公区 - 实用经验教程分享!

  • 当我们需要把多个对象去重复的时候, 就可以使用HashSet.n5L办公区 - 实用经验教程分享!

  • 存储原理:n5L办公区 - 实用经验教程分享!

  • 使用HashSet存储对象的时候, 会先调用对象的hashCode()方法, 计算一个哈希值.n5L办公区 - 实用经验教程分享!

  • 查找集合中是否有哈希值相同的对象n5L办公区 - 实用经验教程分享!

  • 如果没有就直接存入n5L办公区 - 实用经验教程分享!

  • 如果有哈希值相同的对象, 和相同的对象逐个进行equals比较n5L办公区 - 实用经验教程分享!

  • 如果比较结果全部为false就存入n5L办公区 - 实用经验教程分享!

  • 如果比较结果包含true就不存n5L办公区 - 实用经验教程分享!

  • 用HashSet存储自定义对象:n5L办公区 - 实用经验教程分享!

  • 对象需要重写hashCode()和equals()方法n5L办公区 - 实用经验教程分享!

  • hashCode方法要保证属性相同, 返回值相同, 属性不同尽量不同.n5L办公区 - 实用经验教程分享!

  • equals方法要确保属性相同的返回true, 不同的返回false.n5L办公区 - 实用经验教程分享!

3.LinkedHashSetn5L办公区 - 实用经验教程分享!

  • 是HashSet的子类, 实现原理相同, 但可以保留存储顺序.n5L办公区 - 实用经验教程分享!

4.TreeSetn5L办公区 - 实用经验教程分享!

  • TreeSet是Set的一个实现类, 可以去掉重复元素, 可以指定顺序. 按照指定的比较方式比较出元素的大小, 以二叉树形式进行存储.n5L办公区 - 实用经验教程分享!

  • 自然顺序:n5L办公区 - 实用经验教程分享!

  • TreeSet默认按照compareTo方法中的顺序来排序.n5L办公区 - 实用经验教程分享!

  • compareTo是Comparable接口中的抽象方法, 如果想将自定义类的对象装入TreeSet排序, 那么就需要在类上实现Comparable, 重写compareTo方法n5L办公区 - 实用经验教程分享!

  • compareTo方法返回一个int值, TreeSet在存储对象的时候就会调用compareTo方法, 根据int值构建二叉树.n5L办公区 - 实用经验教程分享!

  • 返回的int值如果是负数就代表小于, 正数代表大于, 0代表相等.n5L办公区 - 实用经验教程分享!

  • 比较器顺序:n5L办公区 - 实用经验教程分享!

  • 在创建TreeSet的时候, 可以在构造函数中传入一个Comparator接口的实现类.n5L办公区 - 实用经验教程分享!

  • 传入Comparator之后, 再向TreeSet中添加元素时, 就会调用Comparator中的compare方法来比较了.n5L办公区 - 实用经验教程分享!

n5L办公区 - 实用经验教程分享!

二.练习n5L办公区 - 实用经验教程分享!

  • 1.去掉List集合中的重复元素n5L办公区 - 实用经验教程分享!

  • 2.从键盘输入接收一行字符串, 判断其中出现了多少种字符n5L办公区 - 实用经验教程分享!

  • 3.将一个ListString>中的元素排序n5L办公区 - 实用经验教程分享!

  • 4.自定义一个Person类, 创建若干对象, 装入TreeSet, 按照名字顺序排序, 名字相同的按照年龄排序n5L办公区 - 实用经验教程分享!

  • 5.从键盘接收学生考试信息, 包含语文, 数学, 英语成绩, 按照总分进行排序n5L办公区 - 实用经验教程分享!

  • 请输入学生信息, 输入"quit"为退出:n5L办公区 - 实用经验教程分享!

  • 张三,80,90,80n5L办公区 - 实用经验教程分享!

  • 李四,90,90,80n5L办公区 - 实用经验教程分享!

  • 王五,70,70,70n5L办公区 - 实用经验教程分享!

  • 赵六,60,60,60n5L办公区 - 实用经验教程分享!

  • quitn5L办公区 - 实用经验教程分享!

  • 李四,90,90,80,260n5L办公区 - 实用经验教程分享!

  • 张三,80,90,80,250n5L办公区 - 实用经验教程分享!

  • 王五,70,70,70,210n5L办公区 - 实用经验教程分享!

  • 赵六,60,60,60,180n5L办公区 - 实用经验教程分享!

n5L办公区 - 实用经验教程分享!

Collection1集合n5L办公区 - 实用经验教程分享!

n5L办公区 - 实用经验教程分享!

n5L办公区 - 实用经验教程分享!

HashSet2n5L办公区 - 实用经验教程分享!

n5L办公区 - 实用经验教程分享!

Iteratorn5L办公区 - 实用经验教程分享!

n5L办公区 - 实用经验教程分享!

TreeSetn5L办公区 - 实用经验教程分享!

二叉树n5L办公区 - 实用经验教程分享!

n5L办公区 - 实用经验教程分享!

字符串共享n5L办公区 - 实用经验教程分享!

集合与JDK5新特性|下一篇:

以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!n5L办公区 - 实用经验教程分享!


标签: JAVA

办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码