章节七、4-Sets
一、set中不允许存在相同的元素
package ZangJie7; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set; public class SetDemo {
/**
* sets和list一样,都是集合,唯一不同的在于sets里面的元素不能重复,
*/
public static void main(String[] args) {
Set <String> set = new HashSet<String>();
//在集合中添加元素
set.add("BWm");
set.add("AoDi");
set.add("HonDa");
set.add("HonDa");
System.out.println(set); List<String> list = new ArrayList<String>();
list.add("BWm");
list.add("AoDi");
list.add("HonDa");
list.add("HonDa");
System.out.println(list); } }
运行结果为:(set中不允许存在相同的元素,所以只打印了一个“HonDa”)

二、使用不同是set集合,排序结果不同
package ZangJie7; import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet; public class SetDemo {
/**
* sets和list一样,都是集合,唯一不同的在于sets里面的元素不能重复,
*/
public static void main(String[] args) {
// HsahSet不保证存和取的顺序一样
Set <String> set = new HashSet<String>();
//在集合中添加元素
set.add("BWm");
set.add("AoDi");
set.add("HonDa");
set.add("HonDa");
// 使用高级for循环来读取集合中的元素
for(String item:set) {
System.out.println("HashSet读取的元素顺序:"+item);
}
System.out.println(); // LinkHashSet 保证有序
Set <String> lset = new LinkedHashSet<String>();
//在集合中添加元素
lset.add("BWm");
lset.add("AoDi");
lset.add("HonDa");
// 使用高级for循环来读取集合中的元素
for(String item:lset) {
System.out.println("LinkedHashSet读取的元素顺序:"+item);
}
System.out.println(); // TreeSet以自然排序的方式来对进行元素排序
Set <String> tset = new TreeSet<String>();
//在集合中添加元素
tset.add("BWm");
tset.add("AoDi");
tset.add("HonDa");
// 使用高级for循环来读取集合中的元素
for(String item:tset) {
System.out.println("TreeSet读取的元素顺序:"+item);
} /* List<String> list = new ArrayList<String>();
list.add("BWm");
list.add("AoDi");
list.add("HonDa");
list.add("HonDa");
System.out.println(list);*/ } }
运行结果为:

三、set集合存储性能顺序
HashSet按照hash值存储,例如读书馆中书放在那个书架上都是有记录的,找书时不需要每个书架都找一遍,直接去对应的书架拿即可。
TreeSet需要保证自然顺序
四、那set集合分为hashSet、treeSet和linkedHashSet,我们怎么来区分什么情况下使用:
1、如果我们需要将元素排序, 那么使用TreeSet
2、如果我们不需要排序, 使用HashSet, HashSet比TreeSet效率高
3、如果我们需要保留存储顺序, 又要过滤重复元素, 那么使用LinkedHashSet
章节七、4-Sets的更多相关文章
- 章节七、1-ArrayList
一.集合是一个容器,前面讲的数值也是一个容器, 它们的区别是: 1.数组既可以存储基本数据类型,又可以存储引用数据类型,而集合只能存储引用数据类型,也就是对象. 2.基本数据类型存储的是值,引用数据类 ...
- 章节七、6-Map集合的区别
一.通过entrySet取出Map中的元素 package ZangJie7; import java.util.HashMap; import java.util.Map; public class ...
- 章节七、5-Maps
一.向map集合中添加元素 map.put package ZangJie7; import java.util.HashMap; import java.util.Map; public class ...
- 章节七、3-ArrayList和LinkedList对比
一.创建集合并添加元素(从末尾位置添加) package ZangJie7; import java.util.ArrayList; import java.util.LinkedList; impo ...
- 章节七、2-Linked List
package introduction9; import java.util.ArrayList; import java.util.LinkedList; import java.util.Lis ...
- java Hotspot 内存管理白皮书(中文翻译)
转自: http://my.oschina.net/u/568779/blog/166891 1引言 一个健壮的 Java™2平台,Standard Edition (J2SE™)拥有一个自动内存管理 ...
- java 内存管理 —— 《Hotspot内存管理白皮书》
说明 要学习Java或者任意一门技术,我觉得最好的是从官网的资料开始学习.官网所给出的资料总是最权威最知道来龙去脉的.而Java中间,垃圾回收与内存管理是Java中非常重要的一部分.<Hot ...
- java HotSpot 内存管理白皮书
原文见:http://www.open-open.com/lib/view/open1381034220705.html.查阅资料后,对原文做了补充. 文中关于JVM的介绍基于JDK1.6的Hotsp ...
- 数据结构(Data Structures)
一.List数据类型的方法 定义两个list,a和b:a=[1,2,3,4],b=[7,8,9,10] a.append(x) 在a的末尾附加x元素 a.extend(b) ...
随机推荐
- 【shiro】(4)---Shiro认证、授权案例讲解
Shiro认证.授权案例讲解 一.认证 1. 认证流程 2.用户密码已经加密.加盐的用户认证 (1)测试类 // 用户登陆和退出,这里我自定了一个realm(开发肯定需要自定义realm获取 ...
- sql server 性能调优之 资源等待内存瓶颈的三种等待类型
一.概述 这篇介绍Stolen内存相关的主要三种等待类型以及对应的waittype编号,CMEMTHREAD(0x00B9),SOS_RESERVEDMEMBLOCKLIST(0x007B),RESO ...
- Nginx安装echo模块
echo-nginx-module 模块可以在Nginx中用来输出一些信息,可以用来实现简单接口或者排错. 项目地址:https://github.com/openresty/echo-nginx-m ...
- 线程池ThreadPool及Task调度死锁分析
近1年,偶尔发生应用系统启动时某些操作超时的问题,特别在使用4核心Surface以后.笔记本和台式机比较少遇到,服务器则基本上没有遇到过. 这些年,我写的应用都有一个习惯,就是启动时异步做很多准备工作 ...
- SLAM入门之视觉里程计(3):两视图对极约束 基础矩阵
在上篇相机模型中介绍了图像的成像过程,场景中的三维点通过"小孔"映射到二维的图像平面,可以使用下面公式描述: \[ x = MX \]其中,\(c\)是图像中的像点,\(M\)是一 ...
- 字符串不相同出现相同HashCode(算法)
转自:https://blog.csdn.net/fly_grass_fish/article/details/81742794 在Java中有HashCode的说法,以前以为HashCode是唯一的 ...
- MyEclipse2017破解设置与maven项目搭建
下载 版本:MyEclipse2017 Stable 2.0 百度网盘链接:https://pan.baidu.com/s/1vpIMKq9FfMMbhXzkmft_8A 密码:xfbv myecli ...
- shell中$后加引号有什么用($"string"和$'string')
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 有些时候在某些服务管理脚本中看到$"$string& ...
- 分布式系统监视zabbix讲解六之自定义监控项--技术流ken
宏 概述 Zabbix支持许多在多种情况下使用宏.宏是一个变量,由如下特殊语法标识: {MACRO} 根据在上下文中, 宏解析为一个特殊的值. 有效地使用宏可以节省时间,并使Zabbix变地更加高效. ...
- centos7部署DNS-1
文章索引: 一.服务相关介绍 二.实验:搭建正向主DNS服务器 三.实验:搭建反向解析服务器 四.实验:泛域名解析,如wwww.baidu.com也可以正常访问 环境 服务器 节点名称 IP地址 dn ...