文档章节

Java集合框架之规则集

YH_猿员猿
 YH_猿员猿
发布于 2016/07/21 17:32
字数 604
阅读 62
收藏 0
点赞 0
评论 0
    规则集是用于存储一组不重复的元素的集合。规则集Set接口是对Collection接口的一种扩充,它没有引入新的方法和变量,只是规定了Set的实例不包含重复的元素。
    Set接口有3个具体的实现类:散列类HashSet,链式散列类LinkedHashSet和树形类TreeSet。

散列集HashSet

    HashSet类是一个用于实现Set接口的具体类,它可以使用无参构造方法创建,也可以由一个现有的集合创建散列集。

客座率:是在测量在增加规则集的容量之前,该规则集的饱满程度。当元素数量超过了规则集的饱满程度,容量就会翻倍。默认为容量16,客座率0.75.

    考虑到效率问题,添加到散列集中的对象必须以一种正确的分散散列码的方式实现HashCode方法。

HashCode:Object类中定义的一种方法,作用是对集合中象间的比较提高效率,它通过一种特俗的函数运算,将集合中的对象映射到一组数值上,相同的对象一定有相同的Code值,不同的对象可能有相同的散列码,我们在用方法进行比较。以此提高效率。

public class TestHashSet {
    //create a hash set
    public static void main(String[] args){
        Set<String> s = new HashSet<String>();
        //Add Strings to the set
        s.add("London");
        s.add("Paris");
        s.add("New York");
        s.add("London");

        System.out.println(s);

        //迭代器
// Iterator<String> inIterator = s.iterator();
// while(inIterator.hasNext()){
// System.out.println(inIterator.next().toUpperCase()+" ");
// }

        for(Object element:s){
            System.out.println(element);
        }       
    }
}

这个程序中添加了两次London,但只要一个会被存储。因为规则集中不允许有重复的元素。HashSet是没有顺序的。

for-each循环可用于Collection的任何实例上。

链式散列表LinkedHashSet

    它扩展了HashSet,支持对规则集的元素进行排序,它可以按照插入规则集的顺序提取。

如果不需要维护元素被插入的顺序,应使用HashSet。

树形TreeSet

    SortedSet是set的一个子接口,它可以确保规则集中的元素是有序的,它提供了两个方法first()和last()来返回第一个和最后一个元素,以及方法headSet(t)和tailSet(f)以返回小于t和大于或等于f的那一部分。
    NavigableSet扩展了SortedSet,它又提供了导航方式而TreeSet

本文转载自:http://blog.csdn.net/yin569258/article/details/50812662

共有 人打赏支持
YH_猿员猿
粉丝 0
博文 12
码字总数 0
作品 0
徐汇
程序员
Java虚拟机JVM内部体系结构

Java虚拟机JVM内部体系结构 易百教程移动端:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"教程" 选择相关教程阅读或直接访问:http://m.yiibai.com 。 JVM(Java虚拟机)是一个抽象...

LYQ1990
07/18
0
0
国外程序员整理的Java资源大全

构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配...

强子哥哥
2015/11/16
0
1
推荐!国外程序员整理的Java资源大全

构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配...

huntering
2015/01/13
0
0
构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并

构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配...

enosh
2015/01/09
0
2
推荐!国外程序员整理的Java资源大全

Java 几乎是许多程序员们的入门语言,并且也是世界上非常流行的编程语言。国外程序员 Andreas Kull 在其 Github 上整理了非常优秀的 Java 开发资源,推荐给大家。 译文由 ImportNew- 唐尤华翻...

李朝强
2015/11/21
0
0
每个项目中,你必须知道的11个Java第三方类库。

Java第三方library ecosystem是一个很广阔的范畴。不久前有人撰文:每个项目中,你必须知道的11个Java第三方类库。 单元测试 1.DBUnit DBunit是一个基于junit扩展的数据库测试框架。它提供了...

thinkyoung
2015/01/07
0
0
Apache commons (Java常用工具包)简介

Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.html BeanUtils Commons-BeanUtils 提供对 Java...

Coder小兵
2012/02/04
0
0
day14_DBUtils学习笔记

一、DBUtils介绍 Apache公司开发的框架。   DBUtils是java编程中的数据库操作实用工具,小巧简单实用。   DBUtils封装了对JDBC的操作,简化了JDBC操作。可以少写代码。 commons-dbutils 是...

黑泽明军
05/20
0
0
Java集合框架之Iterator和ListIterator

一、前言 迭代器是一个对象,它可以让你遍历一个容器并且有选择性的删除容器中的元素,而我们不需要知道容器的内部结构.Java有两种原生的迭代器:Iterator和ListIterator, 其中ListIterator继承...

JackieYeah
2014/04/08
0
0
外国程序员整理的Java资料大全

构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配...

乔三爷
2015/03/30
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

什么是Base64

一、什么是Base64? 百度百科中对Base64有一个很好的解释:“Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法”。 什么是...

Jack088
4分钟前
0
0
SQL多表联查leftjoin左边加表单

SELECT IFNULL(u.USER_ACCOUNT, o.USER_ACCOUNT) u.USER_ACCOUNT, o.* FROM gh_orders o LEFT JOIN gh_user u ON o.PARENT_ID = u.ROW_ID 1.假如u.USER_ACCOUNT不空返回u.USER_ACCOUNT,否则返......

森火
8分钟前
0
0
expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统

expect脚本同步文件 更改权限 执行脚本 查看执行结果 expect eof需要加上,作用是等脚本命令执行完再进行退出 expect脚本指定host和要同步的文件 更改权限,执行脚本 构建文件分发系统 需求背...

Zhouliang6
46分钟前
1
0
Hive应用:外部分区表

Hive应用:外部分区表 介绍 Hive可以创建外部分区表。创建表的时候,分区要在建表语句中体现。建完之后,你不会在表中看到数据,需要进行分区添加,使用alter语句进行添加。然后数据才会显示...

星汉
57分钟前
3
0
点击Enter登录

1. 效果 2. 实现过程(记得引入jq文件) //6.回车事件 登录 $(function() { document.onkeydown = function(event) { var e = event || window.event || arguments.callee.caller.arguments......

Lucky_Me
今天
1
0
点击菜单内容切换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ height: 38px; background-color: #eeeeee; line-height: 38px; } .mao{ ......

南桥北木
今天
1
0
OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
今天
591
8
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
10
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
1
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部