集合:
  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的更多相关文章

  1. java集合框架1

    1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). 当我们把一个对象放入集合中后,系统会把所有集合元素都当成O ...

  2. [转]Java - 集合框架完全解析

    数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架.在平常的学习开发中,灵 ...

  3. Java - 集合框架完全解析

    来自:http://www.jianshu.com/p/63e76826e852 数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织 ...

  4. Java 集合框架()

    一概述 二Collection接口 List Set Queue 三Map接口 HashMap LinkedHashMap TreeMap 四其它集合类 Vector Stack HashTable ...

  5. 关于Java集合框架的总结

    Java集合框架(都实现了Cloneable和Serializable接口)支持以下两个类型的容器: 一种是为了存储一个元素集合,简称集合(collection). 另一种是为了存储键/值对,称为图( ...

  6. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  7. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  8. 【集合框架】Java集合框架综述

    一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...

  9. Java 集合框架

    Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...

随机推荐

  1. [设计模式] 7 适配器模式 adapter

    在 Adapter 模式的结构图中可以看到,类模式的 Adapter 采用继承的方式复用 Adaptee的接口,而在对象模式的 Adapter 中我们则采用组合的方式实现 Adaptee 的复用 类模 ...

  2. uva 10269 最短路

    求两次最短路 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> ...

  3. HDU 1546 Idiomatic Phrases Game(最短路,Dijsktra,理解题意很重要)

    题目 1.注意因为要判断能不能到达,所以要在模版里面判断k有没有更新. 2.看懂题目意思和案例的解法很重要. #define _CRT_SECURE_NO_WARNINGS //题目大意:现要进行单词 ...

  4. POJ 3270 Cow Sorting(置换群)

    题目链接 题意 : N头牛,每个牛的坏脾气都有一个值,每个值都不相同,把这个值按照从小到大排序,如果两个值交换,那么会花掉这两个值之和的时间,让你花最少的时间将每个值从小到大排好序,求最小的总时间. ...

  5. hdu 4701 Game 博弈论

    思路: ▶ 设 win(i,x,y) 表示当前可以买的物品是 i,先手有 x 元,后 手有 y 元时,先手是否必胜 ▶ win(i,x,y) ⇐⇒∃j((j > i)∧(x ≥ si−sj)∧¬ ...

  6. window.open(url, "_black" , spec)

    var url = "${request.contextPath}/test/openWindow.action?number="+number; var spec = " ...

  7. http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html(重要)

    http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html

  8. 为Android Studio 项目手动下载gradle

    在http://developer.android.com/samples/index.html上下载的例子,导入Android Studio的时候,第一件事就是下载项目对应版本的gradle.gra ...

  9. Project Euler 82:Path sum: three ways 路径和:3个方向

    Path sum: three ways NOTE: This problem is a more challenging version of Problem 81. The minimal pat ...

  10. 欧拉工程第57题:Square root convergents

    题目链接 Java程序 package projecteuler51to60; import java.math.BigInteger; import java.util.Iterator; impo ...