set集合特点级子类的特点
Set集合,无序,不可以重复元素
Set集合中的子类HashSet和TreeSet集合的特点
首先说一下HashSet: 数据结构是哈希表。线程是非同步的。
保证元素唯一性的原理:判断元素的hashCode值是否相同
如果相同,还会继续判断元素的equals方法,是否为true.
TressSet : 可以对Set集合中的元素进行排序。
底层数据结构是二叉树,
保证元素唯一性。
TreeSet排序的第一中方式:让元素自身具备比较性
元素需要实现Complare
注意:当主要条件相同时,一定要判断次要条件
上代码:
import java.util.*;
class TreeSetDemo
{
public static void main(String[] args)
{
TreeSet ts=new TreeSet();
ts.add(new Student("学生1",22));
ts.add(new Student("学生2",20));
ts.add(new Student("学生3",20));
ts.add(new Student("学生4",40));
Iterator it=ts.iterator();
while(it.hasNext())
{
Student stu=(Student)it.next();
System.out.println(stu.getName()+"...."+stu.getAge());
}
}
}
class Student implements Comparable//该接口强制让学生具备比较性。
{
private String name;
private int age;
Student(String name,int age)
{
this.name=name;
this.age=age;
}
public int compareTo(Object obj)
{
if(!(obj instanceof Student))
throw new RuntimeException("不是学生对象");
Student s=(Student)obj;
System.out.println(this.name+"...compareto..."+s.name);
if(this.age>s.age)
return 1;
if(this.age==s.age)
{
return this.name.compareTo(s.name);//当主要条件满足判断次要条件
}
return -1;
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}}
set集合特点级子类的特点相关推荐
- 黑马毕向东Java课程笔记(day14-1——14-11):集合类(集合框架)——集合类分类与特点+List集合接口及其子类
1.集合类特点 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 数组和集合类同是容器,有何不同 ...
- java解析遍历List集合(其实现子类)的三种方式
java解析遍历List集合(其实现子类)的三种方式 1 使用迭代器对象 1.1 底层 1.1.1 List接口继承了Collection接口 1.1.2 而Collection接口又继承了Itera ...
- Java集合Map与其子类回顾
接10月12号昨天的笔记,今天继续回顾集合中的Map集合. 一.集合工具操作类Collections 问题:collection和collections的区别? 1.collection是单列集合的顶 ...
- 一个简单的集合并级取反问题 !A or !B == !(A and B)
A and B的反义 ! A or !B 错!! 要找到 !A 和!B的交际 !A or !B 而不是 !A and !B !A or !B == !(A and B) 举例: sele ...
- Java基础笔记-十五、集合类库(下)
泛型机制(熟悉) 通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做Object类型放入的,因此从集合中取出元素时也是Object类型,为了表达该元素真实的数据类型,则需要强制类型转换,而 ...
- Java_比较器枚举类和注解集合泛型
文章目录 Java_比较器 Java_自然排序:java.lang.Comparable Java_Comparable的实现 Java_定制排序java.util.Comparator Java_S ...
- 小白学JAVA之十七——集合类库
小白学JAVA之十七--集合类库 一. 集合 1.1 集合的由来 当需要在Java程序中记录单个数据内容时,则声明一个变量. 当需要在Java程序中记录多个类型相同的数据内容时,声明一个一维数组. 当 ...
- 【Java 集合】Java 集合主要脉络 ( Collection | Map | List | Set )
文章目录 I 集合脉络 II List 接口简介 III Set 接口简介 IV Map 接口简介 V Collection 接口定义的方法 I 集合脉络 集合主要脉络 : Java 集合大的分类为两 ...
- Java基础知识(数据类型和集合)
一.数据类型 包装类型 包装类型是对基本数据类型不足之处的补充. 基本数据类型的传递方式是值传递,而包装类型是引用传递,同时提供了很多数据类型间转换的方法. Java1.5 以后可以自动装箱和拆箱 二 ...
最新文章
- 机器学习和统计中的AUC
- YCrCb与YPrPb的含义与区别
- 从 Google Code 迁移代码到 GitHub 上
- mysql Windows导入sql 失败
- 计算机组成原理树状图,数据结构
- WdatePicker日期插件
- oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...
- CHIL-SQL-FOREIGN KEY 约束
- Android轩辕剑之ActionBar之三
- 【LOJ119】单源最短路 模板
- Vue全家桶+koa2+MySql(sequelize)重构“零食商贩”项目
- java fseek_无法使用fseek(C)浏览文件
- HMI 排行中有哪些触摸屏品牌
- 数据总线和地址总线区别是什么?作用分别是什么
- php 应用截图,PHP实现网页截图?
- java工程师容易秃头吗_程序员因发际线后悔学java!
- 深度强化学习训练调参方法
- 中国传感器制造行业发展态势与应用前景预测报告2022-2028年
- django-spirt 论坛主题
- dg怎么了(最近dg怎么了)
热门文章
- 华侨城黄金周期间接待游客650万人次
- 【FXCG】调查显示美国通胀率将持续超过目标
- 《老滚5 》买房、立室详尽办法
- 初次安装mysql8 设置密码为root
- 【计算机网络】Transmission-Control-Protocol拥塞控制
- ubuntu无法上网问题的解决
- 阿里云服务端SDK下载的jar包通过maven命令安装(maven手动安装本地jar包到项目)...
- YGG SEA 与 P2E 游戏 Big Time、Avarik Saga、Zuki Moba 和 SolChicks 达成合作
- 知识变现海哥:如何利用知乎平台知识变现?
- hbase+phoenix