Java(集合类)第二部分(Set)

原创 2016年08月30日 20:44:51

Set一般不能直接使用,可以直接使用的类是HashSet,TreeSet,LinkedHashSet,这几个类虽然在内部实现上有所不同,但由于其实现了相同的接口,因此使用方法基本相同。TreeSet还实现类SortedSet接口,可以对自合中的元素排序

1.HashSet类
HashSet继承自AbstractSet并且实现了Set接口。它创建了一个类集合,该类集合使用散列表进行存储。散列表通过使用散列法的机制来存储信息。
在散列中使用一个关键字来确定唯一的一个值,称为散列值,而散列值则被用来当作与关键字相连数据的存储下标。关键字到其散列值的转换是自动执行的,散列值本身看不到,程序代码也不能直接索引散列表。
HashSet类的构造方法,
HashSet()构造一个默认的散列集合
HashSet(Collection c)用集合c中的元素初始化散列集合
HashSet(int capacity)用capacity初始化散列集合的容量
HashSet(int capacity,float fillRatio)用它的参数初始化散列集合的容量和填充比(加载容量)
//填充比必须介于0.0与1.0之间,用于确定在散列表集合向上调整大小之前有多少能被填充,具体的说,就是当元素的个数大于散列集合容量乘以它的填充比时,散列集合被扩大。对于没有获得填充比的构造函数,默认使用0.75

import java.util.HashSet;

public class HashSetDemo {
    public static void main(String[] args) {
        HashSet hashSet=new HashSet();
        hashSet.add("A");
        hashSet.add("B");
        hashSet.add("C");
        hashSet.add("D");
        hashSet.add("E");
        hashSet.add("F");
        hashSet.add("A");
        System.out.println(hashSet);
    }
}

结果
[A, B, C, D, E, F]
分析:从输出结果可以看出,元素并没有按顺序进行存储,并且也没有重复元素。

2.TreeSet
TreeSet是使用树结构存储元素的类集合,对象按升序存储,访问和检索是很快的。在存储了大量需要进行快速检索的排序信息的情况下,TreeSet是一个很好的选择。
TreeSet()构造一个空的树集合该树集合将根据其元素的自然排序按升序排序
TreeSet(Collection c)构造一个包含了c的元素的树集合
TreeSet(SortedSet ss)构造了一个包含了ss元素的树集合

import java.util.*;
public class TreeSetDemo {
    public static void main(String[] args) {
        TreeSet hsSet=new TreeSet();
        hsSet.add("D");
        hsSet.add("E");
        hsSet.add("F");
        hsSet.add("A");
        hsSet.add("B");
        hsSet.add("C");
        hsSet.add("A");
        System.out.println(hsSet);
        System.out.println(hsSet.first());
        System.out.println(hsSet.last());
        System.out.println(hsSet.lower("E"));
        System.out.println(hsSet.pollLast());
        System.out.println(hsSet);
    }

}

结果
[A, B, C, D, E, F]
A
F
D
F
[A, B, C, D, E]

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

--面向对象第二部分-内部类、异常--java学习日记6(基础知识)

面向对象是一种思想,它将事物抽象,封装,
  • qq_1991
  • qq_1991
  • 2014年07月17日 00:50
  • 528

Java笔记 第四章(2)Java面向对象编程基础 第二部分(类的成员变量和方法)

掌握这些,Java基础你就入门了。一起来学习吧! 类的成员变量和方法是组成类的基本元素。成员变量描述类的属性,方法则获取或改变属性的值。 本节学习如何声明类的成员变量和如何使用类的成员变量。...

java责任链设计模式及在tomca容器中的应用,第二部分

责任链在tomcat 中的应用Tomcat 中一个最容易发现的设计模式就是责任链模式,这个设计模式也是 Tomcat 中 Container 设计的基础,整个容器的就是通过一个链连接在一起,这个链一直...

《Groovy程序设计》读书笔记之第二部分 面向Java开发者的Groovy(上)

本文是《Groovy程序设计》一书的读书整理笔记系列文章 Hello Groovy & Groovy循环 & 异常处理 & 安全导航操作符下面是一个java文件实现,与groovy实现的对比,...

Java第二部分

第五章 类和对象 1,面向对象概述 类和对象的定义面向对象程序设计具有以下特点: - 封装性:封装是面向对象编程的核心思想,将对象的属性和行为封装起来,其载体就是类。 类...

Java面试题集(第二部分)(51-70)

摘要:这一部分主要讲解了异常、多线程、容器和I/O的相关面试题。首先,异常机制提供了一种在不打乱原有业务逻辑的前提下,把程序在运行时可能出现的状况处理掉的优雅的解决方案,同时也是面向对象的解决方案。而...

深入理解Android之Java Security第二部分(Final)

深入理解Android之Java Security(第二部分,最后)代码路径:Security.java:libcore/lunl/src/main/java/java/security/Truste...
  • Innost
  • Innost
  • 2015年03月11日 15:46
  • 21695

Java基础学习笔记 第二部分 part 1

1.Java GUI API* Component是所有用户界面类的父亲 * Container用于对组件进行归类 * JComponent是所有轻量级Swing组件的父类 (打亮的类及其子类...

Java基础学习笔记 第二部分 part 2

Component及JComponent类(Component类是所有UI组件和容器的基类) Component中常用的属性:* font用于组件上显示文本 * backGround是组件的背景色...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java(集合类)第二部分(Set)
举报原因:
原因补充:

(最多只允许输入30个字)