把自定义的对象放入HashSet或LinkedHashSet,为保证元素内容不重复,需要:

• 覆盖hashCode( )方法,保证相同对象返回相同的值,提供
调用equals( )方法的机会。
• 覆盖equals( )方法,相同对象返回true。
TreeSet是能够给元素排序的Set集合,要给元素排序,必须提供排序规则。

提供排序规则的方式:
1/元素所属的类实现Comparable接口
如果一个对象所属的类实现了Comparable接口,则可以直
接把这些对象放入TreeSet集合中,TreeSet集合会自动调用对
象的compareTo( )方法,根据返回的结果进行排序:
• 负数:this对象排在obj对象之前
• 正数:this对象排在obj对象之后
• 0:视为重复对象

2/使用实现了Comparator接口的对象创建TreeSet对象
使用Comparator实现类的对象创建的TreeSet集合不会使用
对象的compareTo( )方法排序,所以不要求对象所属的类必须
实现Comparable接口。TreeSet集合根据compare( )方法返回
的结果进行排序:
• 负数:o1对象排在o2对象之前
• 正数:o1对象排在o2对象之后
• 0:视为重复对象
Set set = new TreeSet ( new Comparator( ) {
public int compare( Object o1, Object o2 ) {
return ( ( Student ) o1 ).getAge( )
- ( ( Student ) o2 ).getAge( );
}
} );

java的collection&&map集合总结的更多相关文章

  1. 黑马程序员——JAVA基础之Map集合

    ------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...

  2. 【Java进阶】---map集合排序

    map集合排序         这篇文章讲的不仅仅是map排序,比如把对象按某一属性排序,它都可以解决这些问题.   比如,有N个对象,每个对象有个属性就是成绩,成绩分:优秀,良好,合格.那我们如何按 ...

  3. java 基础 --Collection(Map)

    Map是不是集合?哈哈哈 java编程思想>的第11章,第216页,正数第13行,中原文:“……其中基本的类型是LIst.Set.Queue和Map.这些对象类型也称为集合类,但由于Java类库 ...

  4. [Java基础]List,Map集合总结

    java.util包下: Collection    |--List 接口 |----ArrayList |----LinkedList |----Vector |-----Stack |---Set ...

  5. java中的Map集合

    Map接口 Map为一个接口.实现Map接口的类都有一个特点:有键值对,将键映射到值的对象. Map不能包含重复的键,每个键可以映射到最多一个值. Map常见的接口方法有: V  put(K key, ...

  6. Java——倒序输出Map集合

    package com.java.test.a; import java.util.ArrayList; import java.util.LinkedHashMap; import java.uti ...

  7. Java中遍历Map集合的四种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  8. Java中的map集合顺序如何与添加顺序一样

    一般使用map用的最多的就是hashmap,但是hashmap里面的元素是不按添加顺序的,那么除了使用hashmap外,还有什么map接口的实现类可以用呢? 这里有2个,treeMap和linkedH ...

  9. 在java中获取Map集合中的key和value值

随机推荐

  1. Linux系统之-TCP-IP链路层

    一.基本 网络层协议的数据单元是 IP 数据报 ,而数据链路层的工作就是把网络层交下来的 IP 数据报 封装为 帧(frame)发送到链路上,以及把接收到的帧中的数据取出并上交给网络层. 为达到这一目 ...

  2. HTML中多媒体标签技术说明

    在纯文本的HTML页面中加入图片,给原来单调乏味的页面添加生气.HTML语言中利用<IMG>标记插入图片. 1.图片标记<IMG>及其属性 在网站上,网页设计者都使用了大量精心 ...

  3. Redis缓存接入监控、运维平台CacheCloud

    改造RedisConnectionFactory /** * 根据缓存策略的不同,RedisConnectionFactory不同 * 示例是单机模式. * * @return */@Beanpubl ...

  4. tarjam 模板改编

    思路要灵活 邻接表涉及数组问题,可以用vector代替

  5. java 并发——CountDownLatch

    java 并发--CountDownLatch 简介 public class CountDownLatch { private final Sync sync; private static fin ...

  6. yum安装LAMP

    安装LAMP环境二进制包安装,先更新yum源,PHP 7.0.33 扩展可选 yum -y install mysql mysql-server mysql-devel httpd httpd-dev ...

  7. 在Python中检测*可用* CPU数量的便携方式

    根据这个问题和答案 - Python multiprocessing.cpu_count()在4核Nvidia Jetson TK1上返回'1' - Python multiprocessing.cp ...

  8. selinux与kernel 0day

    selinux与kernel 0day kernel NULL pointer的利用需要把shellcode映射到内存0处, 大家在测试exp的时候,总能发现一个规律, 开着selinux就能溢出成功 ...

  9. JS综合面试题1

    function foo(){ getName = function () { alert(1); }; return this; } Foo.getName = function(){ alert( ...

  10. C#5.0 异步编程 Async和Await--异步方法的规范和注意事项

    要些异步方法要注意一下几点: 异步方法的返回值有三种: 1.没有任何返回值的void 2.返回一个Task任务的Task,可以获得该异步方法的执行状态 3.返回Task<T> 可以获得异步 ...