java的collection&&map集合总结
把自定义的对象放入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集合总结的更多相关文章
- 黑马程序员——JAVA基础之Map集合
------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...
- 【Java进阶】---map集合排序
map集合排序 这篇文章讲的不仅仅是map排序,比如把对象按某一属性排序,它都可以解决这些问题. 比如,有N个对象,每个对象有个属性就是成绩,成绩分:优秀,良好,合格.那我们如何按 ...
- java 基础 --Collection(Map)
Map是不是集合?哈哈哈 java编程思想>的第11章,第216页,正数第13行,中原文:“……其中基本的类型是LIst.Set.Queue和Map.这些对象类型也称为集合类,但由于Java类库 ...
- [Java基础]List,Map集合总结
java.util包下: Collection |--List 接口 |----ArrayList |----LinkedList |----Vector |-----Stack |---Set ...
- java中的Map集合
Map接口 Map为一个接口.实现Map接口的类都有一个特点:有键值对,将键映射到值的对象. Map不能包含重复的键,每个键可以映射到最多一个值. Map常见的接口方法有: V put(K key, ...
- Java——倒序输出Map集合
package com.java.test.a; import java.util.ArrayList; import java.util.LinkedHashMap; import java.uti ...
- Java中遍历Map集合的四种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- Java中的map集合顺序如何与添加顺序一样
一般使用map用的最多的就是hashmap,但是hashmap里面的元素是不按添加顺序的,那么除了使用hashmap外,还有什么map接口的实现类可以用呢? 这里有2个,treeMap和linkedH ...
- 在java中获取Map集合中的key和value值
随机推荐
- 通过create-react-app从零搭建react环境
一. 快速开始: 全局安装脚手架: $ npm install -g create-react-app 通过脚手架搭建项目: $ create-react-app <项目名称> 开始项目: ...
- hasvalue vs !=null
Which is preferred: Nullable<T>.HasValue or Nullable<T> != null? The compiler replaces n ...
- Openstack组建部署 — Environment of Controller Node
目录 目录 前文列表 Controller Node Install and configure components Setup DNS Server Setup NTP Server Instal ...
- 2019ccpc网络赛hdu6703 array(线段树)
array 题目传送门 解题思路 操作1是把第pos个位置上的数加上\(10^7\),操作2是找到区间[1,r]中没有且大于k的最小的数.注意到k的范围是小于等于n的,且n的范围是\(10^5\),远 ...
- git使用记录一:配置账户信息
配置的级别 git config --gloabal 针对当前用户下所有的项目 设置 git config --local 针对当前工作区的项目来进行设置 git config --system 针对 ...
- Java类成员访问级别
类可以是public或default(或包级别).在本教程中主要介绍 public,private,protected 这几个访问级别修辞符的使用.类成员的访问级别确定程序的哪个区域可以访问它. 以下 ...
- 牛客练习赛53 C 富豪凯匹配串
思路: bitset的简单题,不幸的是当时的我并不知道bitset, C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间, ...
- WPF非UI线程访问网络资源造成页面假死现象
公司内部一个项目是用WPF作为GUI 访问web接口的形式获取数据, 但是由于数据量比较大,也没做分页,于是就需要一个loading的控件,网上查了很多资料但都比较浅.这里完成需求后,总结一下. 首先 ...
- go strconv
strconv是golang用来做数据类型转换的一个库. 介绍下strconv最常用的两个方法, 没有解释语言那么自在可以str(int),int(string), 那还算简练. num, err : ...
- centos6系列更换阿里yum源
1.首先备份原来的cent os官方yum源 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2. ...