- 浏览: 186265 次
- 性别:
- 来自: 北京
最新评论
-
392214559:
事务时访问数据库的一个操作序列,数据库应用系统通过事务集来完成 ...
数据库中事务的概念及其性质 -
ghl116:
...
JPA入门实例 -
woainichenxueming:
引用
[img][/img][flash=200,200][ ...
ThreadLocal在spring框架中的作用 -
xinbaby61:
学习了!
HashMap,HashTable,HashSet区别 -
hellostory:
无语这样的人....
JPA入门实例
|——SortedSet接口——TreeSet实现类
2Set接口——|——HashSet实现类
3 |——LinkedHashSet实现类
4HashSet
5此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。
6此类为基本操作提供了稳定性能,这些基本操作包括 add、remove、contains 和 size,假定哈希函数将这些元素正确地分布在桶中。对此集合进行迭代所需的时间与 HashSet 实例的大小(元素的数量)和底层 HashMap 实例(桶的数量)的“容量”的和成比例。因此,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。
7
8我们应该为要存放到散列表的各个对象定义hashCode()和equals();
9import java.util.HashSet;
10import java.util.Iterator;
11public class HashSetTest {
12 public static void main(String[] args)
13 {
14 HashSet hs=new HashSet();
15 /**//*hs.add("one");
16 hs.add("two");
17 hs.add("three");
18 hs.add("four");*/
19 hs.add(new Student(1,"zhangsan"));
20 hs.add(new Student(2,"lishi"));
21 hs.add(new Student(3,"wangwu"));
22 hs.add(new Student(1,"zhangsan"));
23
24 Iterator it=hs.iterator();
25 while(it.hasNext())
26 {
27 System.out.println(it.next());
28 }
29 }
30}
31class Student //HashSet要重写hashCode和equals方法
32{
33 int num;
34 String name;
35 Student(int num,String name)
36 {
37 this.num=num;
38 this.name=name;
39 }
40 public String toString()
41 {
42 return "num :"+num+" name:"+name;
43 }
44 public int hashCode()
45 {
46 return num*name.hashCode();
47 }
48 public boolean equals(Object o)
49 {
50 Student s=(Student)o;
51 return num==s.num && name.equals(s.name);
52 }
53}
54
55TreeSet
56此类实现 Set 接口,该接口由 TreeMap 实例支持。此类保证排序后的 set 按照升序排列元素,根据使用的构造方法不同,可能会按照元素的自然顺序 进行排序,或按照在创建 set 时所提供的比较器进行排序。
57是一个有序集合,元素中安升序排序,缺省是按照自然顺序进行排序,意味着TreeSet中元素要实现Comparable接口;
58我们可以构造TreeSet对象时,传递实现了Comparator接口的比较器对象.
59import java.util.*;
60public class TreeSetTest {
61 public static void main(String[] args)
62 {
63 //TreeSet ts=new TreeSet();
64 TreeSet ts=new TreeSet(new Students.compareToStudent());
65 ts.add(new Students(2,"zhangshan"));
66 ts.add(new Students(3,"lishi"));
67 ts.add(new Students(1,"wangwu"));
68 ts.add(new Students(4,"maliu"));
69
70 Iterator it=ts.iterator();
71 while(it.hasNext())
72 {
73 System.out.println(it.next());
74 }
75 }
76}
77class Students implements Comparable
78{
79 int num;
80 String name;
81 Students(int num,String name)
82 {
83 this.num=num;
84 this.name=name;
85 }
86 static class compareToStudent implements Comparator //定义一个内部类来实现比较器
87 {
88 public int compare(Object o1, Object o2) {
89 Students s1=(Students)o1;
90 Students s2=(Students)o2;
91 int rulst= s1.num > s2.num ? 1 : (s1.num==s2.num ? 0 :-1);
92 if(rulst==0)
93 {
94 rulst=s1.name.compareTo(s2.name);
95 }
96 return rulst;
97 }
98 }
99 public int compareTo(Object o) //写具体的比较方法
100 {
101 int result;
102 Students s=(Students)o;
103 result=num >s.num ? 1:(num==s.num ? 0 : -1);
104 if(result==0)
105
发表评论
-
240多个jQuery插件
2008-11-27 21:41 1411jQuery 是继 prototype 之后又一个优秀的 J ... -
数据库中事务的概念及其性质
2008-11-06 10:30 3348事务时访问数据库的一个操作序列,数据库应用系统通过事务集来完成 ... -
Office Project Professional 2007 简体中文版下载
2008-11-05 21:23 23805Office Project Professional 200 ... -
hibernate:继承关系_整个继承树映射到一张表
2008-11-03 21:31 1661hibernate继承映射:domain类:Employee. ... -
ArrayList
2008-10-17 15:50 12931、什么是ArrayList? ? ArrayList就是传说 ... -
java实现mysql的数据导入导出
2008-09-23 16:47 2755package com.backup; import java ... -
HTML 4.0 语 法 教 学
2008-09-18 16:35 1013■ 认识HTML语法 (标签快速导览) ... -
Java反射机制深入研究(转)
2008-09-18 16:31 1324Java反射机制深入研究 ... -
关于一道java程序运行题的结果分析?
2008-09-18 16:25 1553package com.zhaosoft.text; pub ... -
HashMap,HashTable,HashSet区别
2008-09-18 16:16 7672本文是转贴,著作权归原作者所有! Hash ... -
Java基本概念:集合类(Collection)List/Set/Map... 的区别和联系
2008-09-18 16:14 12171Java基本概念:集合类(Collection) List/S ... -
Spring:总结用XML配置的十二个最佳实践
2008-09-18 13:47 9591.不要使用autowiring Spring可以通过类的 ... -
Spring 系列: Spring 框架简介
2008-09-18 12:14 1115在这由三部分组成的介 ... -
JAVA的日期时间相减问题
2008-09-15 17:46 4603import java.util.Date;import ja ... -
微软的面试题及答案
2008-08-21 16:59 1364第一组 1.烧一根不均匀的绳,从头烧到尾总共需要1 ... -
ECLIPSE快捷键说明
2008-08-21 16:17 2067第一部分 常用快捷键说明 eclipse的使用。Ecli ... -
@SuppressWarnings 详解
2008-08-21 16:05 6107@SuppressWarnings J2SE 提供 ... -
MySql 常用命令
2008-07-15 21:26 796一、连接MYSQL。 格式: ... -
dojo快速入门
2008-07-02 08:32 2978转载请注明出处 http://www.fyting.com,谢 ... -
AJAX架构之Dojo篇
2008-07-02 08:28 1802AJAX架构之Dojo篇 一、前言自去年开始,AJAX一下成了 ...
相关推荐
HashSet和TreeSet是Java集合框架中的两种重要数据结构,它们都是Set接口的实现类,用于存储不重复的元素。在编程实践中,理解它们的区别和应用场景至关重要。 HashSet是基于HashMap实现的,它不保证元素的顺序,...
在Java编程语言中,集合框架是处理数据的重要组成部分,其中`HashSet`和`TreeSet`是两种常用的Set接口实现类。它们各自具有独特的特性和用途,理解它们的区别对于编写高效且正确的代码至关重要。 首先,`HashSet`是...
HashSet 和 TreeSet 是 Java 中两种常用的 Set 集合实现,它们都继承自 Set 接口,但实现方式和特性上存在显著差异。 首先,HashSet 是基于哈希表(HashMap 实例)来存储元素的,因此它提供了快速的插入、删除和...
HashSet和TreeSet使用方法的区别解析 HashSet和TreeSet都是Java集合框架中的Set接口实现,用于存储不重复的元素。但是,它们在使用方法和实现机理上有很大的区别。 首先,从使用方法上讲,HashSet和TreeSet都可以...
Java HashSet 和 TreeSet 的区别详解 HashSet 和 TreeSet 是 Java 中两个常用的集合类,它们都实现了 Set 接口,但它们之间有很大的区别。本文将详细介绍 HashSet 和 TreeSet 的区别,帮助大家更好地理解和使用这些...
本文主要探讨了三种基于Set接口的实现类:HashSet、LinkedHashSet和TreeSet,它们各自有不同的特性和使用场景。 首先,HashSet是最基础的Set实现,它不保证元素的特定顺序,也不保证在多次操作后保持元素的顺序不变...
在Java编程语言中,集合框架是处理对象组的重要工具,其中`HashSet`和`TreeSet`是两种常见的接口实现类,分别提供了不同的功能和性能特性。本教程将深入探讨这两个集合类以及它们与比较器(Comparator)的关系。 ...
比较遗憾的是,TreeSet 虽然实现起来也比较简单,但它有着和 HashSet 一样的问题,会自动排序 5:LinkedHashSet去重(有序) 从代码和执行结果可以看出,LinkedHashSet 是到目前为止,实现比较简单,且最终生成的新...
ArrayList和LinkedList是List接口的两个常用的实现类,而HashSet和TreeSet是Set接口的两个常用的实现类。Iterator是一种设计模式,提供了遍历集合的能力。Collection接口是Java集合类中最高级的接口,提供了基本的...
在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中`TreeMap`、`TreeSet`、`HashSet`以及`HashMap`是最常用的数据结构之一。这些集合类各自有着独特的特性和应用场景,下面将对它们进行详细介绍。...
本资源聚焦于Java集合中的四个关键类:HashSet、TreeSet、HashMap和TreeMap,它们分别代表了不同类型的集合容器。 1. **HashSet**:HashSet是一个不允许重复元素的无序集合。它基于哈希表实现,插入和查找操作的...
它提供了多种集合类,例如 ArrayList、LinkedList、HashSet、TreeSet 等,每种集合类都有其特点和应用场景。在面试中,Java Collections 相关的问题是非常常见的,本文将对 Java Collections Interview Questions ...
本次调研的目标是了解和掌握Java中高级类的用法,特别是ArrayList、LinkedList、HashSet和TreeSet这四种数据结构的查询性能。通过比较它们在不同规模数据下的查找速度,我们可以根据实际需求选择最适合的数据结构。 ...
Set接口继承自Collection接口,提供了多种实现类,其中最常用的是HashSet和TreeSet。这两个类分别依赖于HashMap和TreeMap实现其功能。 HashSet是通过HashMap内部实现的,这意味着它不保证元素的顺序,同时支持高效...
Set接口扩展了Collection,不允许重复元素,并且有HashSet和TreeSet作为具体实现。SortedSet接口进一步扩展Set,保证元素按照特定顺序排列。List接口也继承自Collection,支持有序元素,并可通过索引访问,常见的...
HashSet 和 TreeSet 有什么区别? HashMap 和 TreeMap 有什么区别? 什么是迭代器?如何使用它来遍历集合? 什么是 fail-fast 机制? 如何使用 Collections 类对集合进行排序? 什么是 Comparable 和 Comparator ...
Java集合框架提供了两种常见的Set实现:HashSet和TreeSet。HashSet基于哈希表实现,因此添加、删除和查找操作的时间复杂度为O(1),但其迭代顺序是不确定的。若需要保持元素的排序,可以使用TreeSet,它内部使用红黑...
例如,你可能会看到如何使用ArrayList和LinkedList来演示不同类型的列表操作,如何通过HashSet和TreeSet创建无重复元素的集合,以及如何使用HashMap和TreeMap来存储和检索键值对。此外,还可能涉及并发编程中的...
Set接口代表不允许有重复元素的集合,如HashSet、TreeSet和LinkedHashSet。List接口则表示有序的、允许重复元素的集合,如ArrayList、LinkedList和Vector。Map接口则不同于Collection,它是键值对存储的接口,常见的...