比较整集
时间:2019-08-31
本文章向大家介绍比较整集,主要包括比较整集使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
HashSet集合中,数据结构是哈希表。线程非同步。 其保证元素唯一性的原理,是判断元素的HashCode值是否相同。
如果相同,还会继续判断元素的equals方法,是否为true。
TreeSet()构造方法摘要:
TreeSet() :构造一个新的空Set,该Set 根据元素的自然排序进行排序。 (也就是 Comparable的 compareTo方法) 《第一种》
TreeSet(Comparator ):构造一个新的空TreeSet,它根据比较器进行排序。 《第二种》
TreeSet集合当中,所存元素为自己定义的,需要自己定义比较性。以 Student为例-----getName---getAge
方式: 让Student 实现 Comparable ---- 然后覆盖它的 comepareTo方法,定义自己需要的比较功能。 (第一种排序)
import java.util.*; public class Practice_1 { public static void main(String[] args) { TreeSet<Student> ts = new TreeSet<Student>(); ts.add(new Student("java001",10)); ts.add(new Student("java004",40)); ts.add(new Student("java003",30)); ts.add(new Student("java002",20)); ts.add(new Student("java008",20)); Iterator<Student> it = ts.iterator(); while(it.hasNext()) { Student stu = it.next(); sop(stu.getName()+"...."+stu.getAge()); } } public static void sop(Object obj) { System.out.println(obj); } } class Student implements Comparable { private String name; private int age; Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } public int compareTo(Object obj) { if(!(obj instanceof Student)) { throw new RuntimeException("不是学生对象"); } Student s = (Student)obj; if(this.age > s.age) { return 1; } if(this.age == s.age) { return this.name.compareTo(s.name); } return -1; } }
元素自身不具备比较性时,或者具备的比较性不是所需要的,这时候需要让集合自身具备比较性。 (第二种排序)
在集合初始化时候,就有比较方式。 定义一个比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。
如下: 将比较器传入TreeSet()构造函数进行比较即可。
class MyCompare implements Comparator { public int compare(Object o1,Object o2) { Student s1 = (Student)o1; Student s2 = (Student)o2; int num =s1.getName().compareTo(s2.getName()); if(num == 0) { return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge())); } return num; } }
原文地址:https://www.cnblogs.com/zxl1010/p/11440434.html
- 干货 | 2014年我国大数据发展分析报告
- 这个恶意软件“奇葩”的反虚拟机技巧
- Android漏洞CVE-2015-3825分析及exploit实战:从Crash到劫持PC
- VaultPasswordView:可用于查看windows Vault密码的工具
- 逆向工厂(二):静态分析技术
- 打开文件夹就运行?COM劫持利用新姿势
- Java集合总览
- 常见面试题之ListView的复用及如何优化
- 自定义圆形控件RoundImageView并认识一下attr.xml
- 自定义带图片和文字的ImageTextButton
- 超值干货:个人开发者如何使用免费又简单的开发后台
- 【周末分享】解决中文排版错位的JustifiedTextview控件
- 超级网络
- c++ fstream + string 处理大数据
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP APP微信提现接口代码
- thinkPHP5.1框架路由::get、post请求简单用法示例
- Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
- Python爬虫实例——scrapy框架爬取拉勾网招聘信息
- php实现微信企业转账功能
- Laravel框架模型的创建及模型对数据操作示例
- Python环境管理virtualenv&virtualenvwrapper的配置详解
- Matplotlib自定义坐标轴刻度的实现示例
- Python基于time模块表示时间常用方法
- ITK 实现多张图像转成单个nii.gz或mha文件案例
- 一文轻松掌握python语言命名规范规则
- php原生数据库分页的代码实例
- python对一个数向上取整的实例方法
- Laravel框架FormRequest中重写错误处理的方法
- python名片管理系统开发