java treeset 重复,关于 TreeSet 为什么我这样写,还有是有重复的记录啊啊啊啊
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
为什么添加重复元素 E 也能添加进去 ?我运行了下看。
先是 添加了 A,然后添加 E,E 和A比较;添加C,C和A、E比较;添加F,F和C、E比较,(为什么F不先和A比较);添加B,B和 C ,E,F比较(为什么B不先和A比较?);最后添加有重复的元素 E,为什么E先和C 比较? 为什么不再和原来的E比较了? 不懂!
import java.util.*;
class Student implements Comparable
{
private String name;
private int math,english,chinese;
private int sum;
Student(String name ,int math,int english,int chinese)
{
this.name = name;
this.math = math;
this.english = english;
this.chinese = chinese;
sum = math+english+chinese;
}
public String getName()
{
return name;
}
public int getSum()
{
return sum;
}
public String toString()
{
return getName()+":"+getSum();
}
public int compareTo(Object obj) //对元素进行比较
{
Student s=(Student)obj;
if(this.getSum()>s.getSum()) //分数大的时候
{
System.out.println(this.name+":"+this.sum+">>>>."+s.name+":"+s.sum);
return 1;
}
else if(this.getName().equals(s.getName()) && this.getSum()==s.getSum()) //同一个人的时候
{
System.out.println(this.name+":"+this.sum+"====="+s.name+":"+s.sum);
return 0;
}
else //分数小或者是 分数相等但是不是同一个人的时候
{
System.out.println(this.name+":"+this.sum+"<<<<
return -1;
}
}
}
class StudentSetDemo
{
public static void main(String[] args)
{
TreeSet ts = new TreeSet();
ts.add(new Student("A",10,20,30));
ts.add(new Student("E",40,20,30));
ts.add(new Student("C",20,20,50));
ts.add(new Student("F",60,20,60));
ts.add(new Student("B",70,10,40));
ts.add(new Student("E",40,20,30)); //有重复,但是结果也添加进去了,不知道为什么
Iterator iter = ts.iterator();
while(iter.hasNext())
{
System.out.println(iter.next());
}
}
}
java treeset 重复,关于 TreeSet 为什么我这样写,还有是有重复的记录啊啊啊啊相关推荐
- JAVA复习5(TreeSet)
Set 接口 特点: 最大的特点 就是集合中的元素 不可重复 其也是Collection接口的子接口 , Set本身也是一个接口,同样不能直接使用,需要实例化该接口的实现类 Set接口下面的实现类: ...
- java treeset subset_Java中TreeSet的详细用法
第1部分 TreeSet介绍 TreeSet简介 TreeSet 是一个有序的集合,它的作用是提供有序的Set集合.它继承于AbstractSet抽象类,实现了NavigableSet, Clonea ...
- java tree 类_Java TreeSet类
首页 > 基础教程 > 集合框架 > TreeSet类 Java TreeSet类 TreeSet是SortedSet接口的实现,元素不论以什么元素插入,在遍历的时候,都会以天然顺序 ...
- java set的first_Java TreeSet pollFirst()方法与示例
TreeSet类pollFirst()方法pollFirst()方法在java.util包中可用. pollFirst()方法用于返回第一个最小元素,然后从此TreeSet中删除第一个元素. poll ...
- java subset_Java中的TreeSet的subSet()方法 Java.util.TreeSet.subSet() - Break易站
Java中的TreeSet Java.util.TreeSet.subSet()用于返回参数中提到的范围内现有TreeSet的子集.该方法采用上限和下限并返回该范围中提到的所有元素.如果元素存在于集合 ...
- java集合方法之TreeSet.floor()和TreeSet.ceiling()
floor(E e) 方法返回在这个集合中小于或者等于给定元素的最大元素,如果不存在这样的元素,返回null. ceiling(E e) 方法返回在这个集合中大于或者等于给定元素的最小元素,如果不存在 ...
- java集合 测试对TreeSet的使用
1.定义一个Employee类.. 该类包含: private 成员变量name,age,birthday, 其中birthday 为MyDate类的对象;. 并为每一个属性定义 getter stt ...
- JAVA集合05_Collection.toMap()应用、三个重载方法、解决重复key问题
文章目录 ①. Collectors.toMap介绍 ②. Collectors.toMap有三个重载方法 ③. 收集一下属性和对象本身 ④. 常见的java.lang.IllegalStateExc ...
- Java List去重 Lis集合去重 List去重效率对比 List去重复元素效率对比 List去重效率
Java List去重 Lis集合去重 List去重效率对比 List去重复元素效率对比 List去重效率 --- List 去重复元素的几种办法 一.概述 面试的时候,有个常见的问题:" ...
最新文章
- -lt -gt -ge -le -eq的意义
- python pandas for循环_高逼格使用Pandas加速代码,向for循环说拜拜!
- php u6536编码转,详谈PHP编码转换问题
- 【嵌入式】ARM技术博客汇总
- MySQL 中的三中循环 while loop repeat 的基本用法
- Spring集成–使用RMI通道适配器
- STM32-SPI通信
- java esc的_如何用Java中的Receipt打印机和ESC / POS命令提高速度
- Hierarchical clustering
- 小白安装linux系统一键,小白如何快速安装vos3000,一键快速安装VOS
- 获取json格式中属性—sql
- CocosCreator微信小游戏之排行榜
- 员工身高体重决定能否晋升?自如回应
- TLS原理及证书生成
- 使用拦截器或者AOP实现权限管理(OA系统中实现权限控制)
- 锤子手机T1发布:售价3000元起 7月初上市
- qq一键登入帝国cms插件|适用7.5 7.2版本|UTF-8 GBK双版本
- NVIDIA GEFORCE 2080 / 2080 SUPER / 2080 Ti + CUDA Toolkit 8.0 深度学习模型加载速度慢
- ZZULIOJ 1197: 考试排名(一)(结构体专题)
- 技术面试(上):面试官篇
热门文章
- CC讲坛-大脑疾病背后的秘密-许执恒
- 扩增子文献笔记1白杨内生和根际微生物组在不同生态位存在特异的群落结构
- R语言关联规则挖掘数据集预览、分析、筛选:项目数的分布形态(分位数、密度图)、itemFrequency函数统计每一项目在所有事务中出现的次数、最常发生的项目、数据筛选(交易的集合项目大于1)
- R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot)
- plotly基于dataframe数据绘制股票蜡烛图(Candlestick)
- R读取json文件并转化为dataframe
- 交叉熵损失函数、修正Huber损失、极大似然估计、负对数似然、似然与交叉熵、KL散度
- adc参考电压是直流交流_无位置传感器无刷直流电机换相误差校正的新方法
- MMD_6b_DecisionTree
- mysql general bin区别_MySQL中几种常见的日志