Set的常用实现类HashSet和TreeSet
Set HashSet
public static void main(String[] args) {
//不可以重复 并且是无序的
//自然排序 从A-Z
//eqauls从Object继承,默认比较地址
// Set<String> set= new HashSet<>();
// set.add("zs");
// set.add("ls");
// set.add("ww");
// set.add("qq");
// set.add("zs");
// System.out.println(set.size());
// //遍历
//迭代器
// Iterator<String > it= set.iterator();
// while(it.hasNext()) {
// System.out.println(it.next());
// }
// System.out.println("-------------------");
// //Foreach
// for(String s: set) {
// System.out.println(s);
// }
//常用实现类 HashSet
Set<Person> s= new HashSet<>();
//System.out.println(new Person(1,"ls",18).equals(new Person(1,"zs",18)));
//System.out.println(new Person(1,"zs",18));
s.add(new Person(1,"zs",18));
s.add(new Person(2,"ls",18));
s.add(new Person(3,"ww",18));
s.add(new Person(4,"zl",18));
s.add(new Person(5,"qq",18));
//foreach的底层原理就是迭代器
for(Person p:s) {
//默认转换为String的数据类型
System.out.println(p);
}
}
TreeSet
public static void main(String[] args) {
//常用实现类 TreeSet :根据某种(规则)对里面的元素进行排序
//规则1 :java.lang.Comparable
//规则2 :java.util.Comparator
// Set<String> set= new TreeSet<>();
// set.add("zs");
// set.add("ls");
// set.add("ww");
// set.add("qq");
// set.add("zs");
// System.out.println(set.size());
//
遍历
迭代器
// Iterator<String > it= set.iterator();
// while(it.hasNext()) {
// System.out.println(it.next());
// }
// System.out.println("-------------------");
// Foreach
// for(String s: set) {
// System.out.println(s);
// }
//自然排序器
// Set<Person> s= new TreeSet<>();
// //System.out.println(new Person(1,"ls",18).equals(new Person(1,"zs",18)));
// //System.out.println(new Person(1,"zs",18));
// s.add(new Person(1,"zs",18));
// s.add(new Person(2,"ls",18));
// s.add(new Person(3,"ww",18));
// s.add(new Person(4,"zl",18));
// s.add(new Person(5,"qq",18));
//
// //foreach的底层原理就是迭代器
// for(Person p:s) {
// //默认转换为String的数据类型
// System.out.println(p);
// }
// 自定义的排序器(根据年龄排序)
Set<Person> s= new TreeSet<>(new Age());
//System.out.println(new Person(1,"ls",18).equals(new Person(1,"zs",18)));
//System.out.println(new Person(1,"zs",18));
s.add(new Person(1,"zs",18));
s.add(new Person(2,"ls",19));
s.add(new Person(3,"ww",80));
s.add(new Person(4,"zl",30));
s.add(new Person(5,"qq",20));
for(Person p:s) {
System.out.println(p);
}
}
Set的常用实现类HashSet和TreeSet的更多相关文章
- Java 基础 - Set接口 及其实现类HashSet/LinkedHashSet/TreeSet
笔记: /**Set接口 及其实现类 * 公用操作同Collection: * * ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法 ...
- Java开发笔记(六十五)集合:HashSet和TreeSet
对于相同类型的一组数据,虽然Java已经提供了数组加以表达,但是数组的结构实在太简单了,第一它无法直接添加新元素,第二它只能按照线性排列,故而数组用于基本的操作倒还凑合,若要用于复杂的处理就无法胜任了 ...
- HashSet,TreeSet和LinkedHashSet的区别
1. Set接口 Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false. Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个 ...
- 算法竞赛中的常用JAVA API :HashSet 和 TreeSet(转载)
算法竞赛中的常用JAVA API :HashSet 和 TreeSet set set容器的特点是不包含重复元素,也就是说自动去重. HashSet HashSet基于哈希表实现,无序. add(E ...
- Java集合框架之四大接口、常用实现类
Java集合框架 <Java集合框架的四大接口> Collection:存储无序的.不唯一的数据:其下有List和Set两大接口. List:存储有序的.不唯一的数据: Set:存储无序的 ...
- 30、Java中Set集合之HashSet、TreeSet和EnumSet
Set集合是Collection的子集,Set集合与Collection基本相同,没有提供任何额外的方法,只是Set不允许包含重复的元素. Set集合3个实现类:HashSet.TreeSet.Enu ...
- Map接口常用实现类学习
HashMap 1.6的HashMap:数组加单向链表结构 最重要的内部类Entry,全类名是java.util.HashMap.Entry,是个静态类,实现了Map.Entry接口.HashMap. ...
- Java集合详解7:一文搞清楚HashSet,TreeSet与LinkedHashSet的异同
<Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...
- List接口和Set接口及其常用实现类概述
一.List接口 List:有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元 ...
随机推荐
- CF1033C Permutation Game
题目描述 输入输出样例 输入 #1 输出 #1 BAAAABAB 输入 #2 输出 #2 ABAAAABBBAABAAB 数据范围 1<=n<=1e5,1<=ai<=n 解题思 ...
- 函数的学习1——定义函数&传递实参——参考Python编程从入门到实践
定义函数 def greet_user(): print("Hello") greet_user() # PEP8 函数和类的定义后空两行 1. 向函数传递参数 def greet ...
- SAS学习笔记62 通过压缩变量长度来实现数据集压缩
有时候从其他数据库过来的字符型变量Length很长,导致数据集文件很大,可以通过压缩变量长度来实现数据集压缩 具体思路: LENGTH语句设置所有变量真实长度 SET数据集的时候对原有变量进行RENA ...
- ssh密码正确无法连接
新建了一个虚拟机,准备用ssh 连接管理,提示权限不足, 账号密码没问题,防火墙没有开 打开ssh服务的配置文件,默认在 /etc/ssh/sshd_config (不是 ssh_config) 检 ...
- go语言学习 ---struct 对象的序列化和反序列化(xml)
实例1: //main package main import ( "encoding/xml" "fmt" ) type person struct { Na ...
- java之hibernate之基于外键的一对一单向关联映射
这篇讲解基于外键的一对一单向关联映射 1.考察如下信息,人和身份证之间是一个一对一的关系.表的设计 注意:基于外键的一对一关联的表结构和多对一的表结构是一致的,但是,外键是唯一的. 2.类的结构 Pe ...
- SQL*Plus 与数据库的交互(SQL*Plus时什么)
Oracle 的 SQL*Plus 是与数据库进行交互的客户端工具,在 SQL*Plus中,可以运行 SQL*Plus 命令与 SQL*Plus 语句. SQL*Plus 时一个基于 C/S 两层 ...
- Http状态吗504问题复盘
原因分析:504错误一般与nginx.conf配置有关,主要参数有:fastcgi_connect_timeout.fastcgi_send_timeout.fastcgi_read_timeout. ...
- Laravel5.6---搜索查询 自带paginate()分页 get传参
laravel的paginate()分页,如果用post传参,点击第二页时会默认使用get,就会返回原始数据了 需要把查询数据get方式也放到paginate()分页参数中 一.路由 Route::g ...
- SQL SERVER-Alwayson原理
流程 1.异步提交模式 主副本无须确认该副本已经完成日志固化,就可提交事务. 主副本不受辅助副本的影响 辅助副本上的DB处于SYNCHRONIZING 2.同步提交模式 主副本要确认副本已经完成日志固 ...