一、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. 章节七、1-ArrayList

    一.集合是一个容器,前面讲的数值也是一个容器, 它们的区别是: 1.数组既可以存储基本数据类型,又可以存储引用数据类型,而集合只能存储引用数据类型,也就是对象. 2.基本数据类型存储的是值,引用数据类 ...

  2. 章节七、6-Map集合的区别

    一.通过entrySet取出Map中的元素 package ZangJie7; import java.util.HashMap; import java.util.Map; public class ...

  3. 章节七、5-Maps

    一.向map集合中添加元素 map.put package ZangJie7; import java.util.HashMap; import java.util.Map; public class ...

  4. 章节七、3-ArrayList和LinkedList对比

    一.创建集合并添加元素(从末尾位置添加) package ZangJie7; import java.util.ArrayList; import java.util.LinkedList; impo ...

  5. 章节七、2-Linked List

    package introduction9; import java.util.ArrayList; import java.util.LinkedList; import java.util.Lis ...

  6. java Hotspot 内存管理白皮书(中文翻译)

    转自: http://my.oschina.net/u/568779/blog/166891 1引言 一个健壮的 Java™2平台,Standard Edition (J2SE™)拥有一个自动内存管理 ...

  7. java 内存管理 —— 《Hotspot内存管理白皮书》

    说明   要学习Java或者任意一门技术,我觉得最好的是从官网的资料开始学习.官网所给出的资料总是最权威最知道来龙去脉的.而Java中间,垃圾回收与内存管理是Java中非常重要的一部分.<Hot ...

  8. java HotSpot 内存管理白皮书

    原文见:http://www.open-open.com/lib/view/open1381034220705.html.查阅资料后,对原文做了补充. 文中关于JVM的介绍基于JDK1.6的Hotsp ...

  9. 数据结构(Data Structures)

    一.List数据类型的方法 定义两个list,a和b:a=[1,2,3,4],b=[7,8,9,10] a.append(x)            在a的末尾附加x元素 a.extend(b)   ...

随机推荐

  1. python 调用c语言函数

    虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成.这样,就需要用python来调用c的代码了 具体流程: c编写相关函数 ,编译成库 然后在python中加载这些库,指定调用函数. ...

  2. [EXP]IIS全版本提权工具

    工具: iislpe.exe 编译: .net 3.5 全版本IIS提权工具,支持IIS应用池用户/网络服务用户/本地服务用户 原理:       通过NTLM重放将权限提升至SYSTEM权限,详情参 ...

  3. 【原】gulp工作中的实战

    写这篇文章的目的是为了以后的项目中懒得再去配gulp,直接可以拿这篇博客中的来用,因为有时候配置还是挺烦人的. gulp相关插件的介绍 用法比较简单,假设大家都会用gulp,下面主要介绍一下一些插件的 ...

  4. 重学python

    sort dictionary mydict={"a":5,"b":1,"c":6}; sorted(mydict,key=mydict.g ...

  5. Eclipse For JavaEE安装、配置、测试

    Eclipse For JavaEE安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与配置 4.JavaSE开发测试(确保JDK已正确安装) 5.JavaEE开发 ...

  6. centos 7 linux 安装与卸载 jdk 7

    一.声明 本文采用操作系统版本: Centos 7 Linux 系统 版本源:CentOS-7-x86_64-DVD-1708.iso 官网下载地址:http://isoredirect.centos ...

  7. Java 容器源码分析之 Map

    ava.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map.List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建 ...

  8. go builtin包

    Go builtin包提供了go预先声明的函数.变量等的文档.这些函数变量等的实现其实并不是在builtin包里,只是为了方便文档组织. 这些内置的变量.函数.类型无需引入包即可使用. 默认提供的有: ...

  9. OJ:重载 << 运算符

    Description 补足程序,使得下面程序输出的结果是: ****100 #include <iostream> #include <string> using names ...

  10. NTP时间服务器实战应用详解-技术流ken

    简介 在搭建集群服务中,要保证各节点时间一致,NTP时间服务器就成为了一个好帮手了. 系统环境 系统版本:centos6.7 服务器IP:10.220..5.166/24 客户端IP:10.220.5 ...