【Java集合框架】规则集--Set
集合:
Java主要支持三种:
1.规则集(Set)
用于存储一组不重复的元素
2.线性表(List)
用于存储一个由元素构成的有序集合
3.队列(Queue)
同与数据结构中的队列,存储用先进先出的方式处理对象
注:Java集合框架中所有接口和类都存储在java.util包中
Set
Set包括:
1.散列集 HashSet
2.链式散列集 LinkedHashSet
3.树型集 TreeSet
HashSet:
1.HashSet属于规则集,所以其不允许有重复的元素
2.散列集的元素没有特定的顺序
import java.util.*;
public class HashSet_Test {
public static void main(String[] args) {
Set<String> s1 = new HashSet();
s1.add("Apple");
s1.add("Huawei");
s1.add("samsung");
s1.add("Apple");
System.out.println(s1);
HashSet<String>s2 = new HashSet();
s2.add("Apple");
s2.add("Huawei");
s2.add("samsung");
s2.add("Apple");
System.out.println(s2);
}
}
[Apple, samsung, Huawei]
[Apple, samsung, Huawei]
LinkedHashSet:
其用链表的形式实现扩展的HashSet类
1.其支持对规则集内的元素排序
2.其可以按照元素插入规则集的顺序提取
3.属于规则集,其不允许有重复的元素
package One;
import java.util.LinkedHashSet;
import java.util.Set;
public class LinkedHashSet_Test {
public static void main(String[] args) {
Set<String> s1 = new LinkedHashSet();
s1.add("Apple");
s1.add("samsung");
s1.add("Huawei");
s1.add("Apple");
System.out.println(s1);
}
}
[Apple, samsung, Huawei]
TreeSet:
1.提供更多的方法
2.可以确保规则集中的元素是有序的
3.属于规则集,其不允许有重复的元素
package One;
import java.util.Set;
import java.util.TreeSet;
public class TreeSet_Test {
public static void main(String[] args) {
Set<String>s1 = new TreeSet();
s1.add("Apple");
s1.add("samsung");
s1.add("Huawei");
s1.add("Apple");
System.out.println(s1);
}
}
[Apple, Huawei, samsung]
总结:
HashSet按Hash函数排序
LinkedHashSet按插入顺序排序
TreeSet按字母顺序排序
HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;
LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;
TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。
【Java集合框架】规则集--Set的更多相关文章
- java集合框架1
1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). 当我们把一个对象放入集合中后,系统会把所有集合元素都当成O ...
- [转]Java - 集合框架完全解析
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架.在平常的学习开发中,灵 ...
- Java - 集合框架完全解析
来自:http://www.jianshu.com/p/63e76826e852 数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织 ...
- Java 集合框架()
一概述 二Collection接口 List Set Queue 三Map接口 HashMap LinkedHashMap TreeMap 四其它集合类 Vector Stack HashTable ...
- 关于Java集合框架的总结
Java集合框架(都实现了Cloneable和Serializable接口)支持以下两个类型的容器: 一种是为了存储一个元素集合,简称集合(collection). 另一种是为了存储键/值对,称为图( ...
- Java集合框架List,Map,Set等全面介绍
Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +- ...
- Java集合框架练习-计算表达式的值
最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...
- 【集合框架】Java集合框架综述
一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...
- Java 集合框架
Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...
随机推荐
- [nowCoder] 子数组最大乘积
给定一个double类型的数组arr,其中的元素可正可负可0,返回子数组累乘的最大乘积.例如arr=[-2.5,4,0,3,0.5,8,-1],子数组[3,0.5,8]累乘可以获得最大的乘积12,所以 ...
- [剑指OFFER] 斐波那契数列- 跳台阶 变态跳台阶 矩形覆盖
跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. class Solution { public: int jumpFloor(int number) ...
- $POST数组论证($GET || $COOKIE || $REQUEST 同理)
我觉得还是有多个$_POST 如果只有一个$_POST,那么,多个人[同时]提交的话就不好处理 或者一个$_POST 时间限制(如同时钟周期)处理(不可能,不然响应没这么快) 或者 一个$_POS ...
- Web Server 和 HTTP 协议
https://toutiao.io/posts/xm2fr/preview 一直在找实习,有点什么东西直接就在evernote里面记了,也没时间来更新到这里.找实习真是个蛋疼的事,一直找的是困难模式 ...
- PhotoSwipe简介(PhotoSwipe是一个适合在触摸屏手机上使用的相册展示包)
官方介绍PhotoSwipe 是专为移动触摸设备设计的相册/画廊.兼容所有iPhone.iPad.黑莓6+,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产品 ...
- POJ 1125 Stockbroker Grapevine(floyd)
http://poj.org/problem?id=1125 题意 : 就是说想要在股票经纪人中传播谣言,先告诉一个人,然后让他传播给其他所有的经纪人,需要输出的是从谁开始传播需要的时间最短,输出这个 ...
- ORA-04052\ ORA-00604\ORA-12154
ORA-04052: error occurred when looking up remote object TBCS.SUBS_PRIVILEGE@DD2A ORA-00604: error oc ...
- 从一次面试经历谈PHP的普通传值与引用传值以及unset
关于这个概念一般都会在PHP的第一堂课说变量的时候给介绍,并且我以前还给其他PHPer介绍这个概念.但是作为一个工作一段时间的PHPer的我,竟然在面试的时候一下子拿不定主意最后还答错了,很觉得丢脸( ...
- VC error LNK2005 解决办法
error LNK2005: "int __cdecl VerifyVMR9(void)" (?VerifyVMR9@@YAHXZ) 解决办法 在 属性->配置属性-> ...
- PowerDesigner的样式设置
原文:PowerDesigner的样式设置 PD提供了强大的配置功能,可以对生成的数据库对象命名.数据模型的展现进行设置.这里首先讲下样式的设置. 颜色和字体设置 1.单独设置某个对象的颜色和字体 1 ...