[Java]集合中数据排序与避免重复
来源:互联网 发布:暗黑2 1.13 完美 mac 编辑:程序博客网 时间:2024/06/07 02:47
各种集合的特点以及关系
- List: 对付顺序的好帮手
- 一种知道索引位置的集合;
- 可以有元素重复;
- Set: 注重独一无二的性质
- 不允许重复的集合;
- 无序
- Map: 用key来搜索的专家
- 使用成对的键值和数据值;
- key不允许重复;
- 不同key可以引用相同的value;
List中的数据如何排序
- List自己的API是没有排序的,需要借助Collectio.sort()
- 如果是内置类型,比如String,是可以直接用Collection.sort()的,但是入股是一个自定义class,需要实现Comparable;
class Song implements Compareable<Song> { String title; public String getTitle() { return title; } public int compareTo( Song s ) { return title.compareTo( s.getTitle() ); }}
上述的方式,如果Song有几个属性,如果在不同的场景,需要按照不同的属性来排序,上述方法就有些无能为力了;此时可以使用Collection.sort()的带Compatator的版本
Comparator
class ArtistCompare implements Comparator<Song> { public int compare( Song one, Song two ) { return one.getArtist().compareTo( two.getArtist() ); }}ArtistCompare artistCompare = new ArtistCompare();Collection.sort( songList, artistCompare );
避免重复数据
- 为了避免数据重复,我们需要使用Set来存储数据;
- HashSet为了检查数据重复,需要靠
hashCode()
和equls()
; - 首先使用
hashCode()
检查,如果hashCode()相等,再使用equals()
判断;所以自定义类型必须重新实现这两个function;
class Song implements Compareable<Song> { String title; public String getTitle() { return title; } public boolean equals( Object aSong ) { Song s = ( Song )aSong; return getTitle().equals( s.getTitle() ); } public int hasCode() { return title.hashCode(); }}
有了这样的方法重写以后,HashSet就可以无重复数据了。
阅读全文
0 0
- [Java]集合中数据排序与避免重复
- java中去除List集合中重复数据的方法
- java.util.Collections类使用,查找集合中重复数据
- Java中List集合去除重复数据的方法
- Java中List集合去除重复数据的方法
- Java中List集合去除重复数据的方法
- Java中List集合去除重复数据的方法
- 避免重复插入数据
- 删除集合中重复的数据
- 删除集合中重复的数据
- MATLAB中存储中间数据以避免重复计算
- oracle 避免重复插入数据
- mysql 避免重复插入数据
- sqlite避免重复插入数据
- java中删除重复数据
- java 数组去掉重复数据和排序
- java集合中对象排序
- Java集合中对象排序
- Spark Dataframe操作
- oracle监听使用双IP
- 复杂链表的复制
- Android_性能优化_lemonen
- KafkaOffsetMonitor 监控工具的安装与本地使用简要说明
- [Java]集合中数据排序与避免重复
- redhat 5.4/5.5/5.8/6.0/6.3 iso 镜像下载
- Netty生产级的心跳和重连机制
- 地图之CLLocationManager的使用
- php中关于线程thread的使用
- vue使用过程中遇到的错误提示一
- 4556: [Tjoi2016&Heoi2016]字符串 后缀自动机 详细
- SFP光模块大全,你想了解的这里都有!
- scala 九大排序算法