易截截图软件、单文件、免安装、纯绿色、仅160KB

Java中Set的深入研究

Set和数学中的集合是同一个概念,就是没有重复元素的集合。
这篇文章主要论述了Set是如何实现"没有重复元素"(no duplicate elements)的,以及阐述了什么是“重复”(duplicate),是相同的地址空间?是equals的返回值为true?是compareTo的返回值为0 ?还是有相同的hashCode?本文还给出了在什么情况下使用什么样的Set的建议。
注:本文不涉及范型。
1、树形结构:
public interface Set extends Collection{}
public abstract class AbstractSet extends AbstractCollection implements Set{}
public class CopyOnWriteArraySetextends AbstractSetimplements Serializable{}
public abstract class EnumSet>extends AbstractSetimplements Cloneable, Serializable{}
public class HashSetextends AbstractSetimplements Set, Cloneable, Serializable{}
public final class JobStateReasonsextends HashSetimplements PrintJobAttribute{}
public class LinkedHashSetextends HashSetimplements Set, Cloneable, Serializable{}
public class TreeSetextends AbstractSetimplements SortedSet, Cloneable, Serializable{}
可以看出,可以实例化的类为:CopyOnWriteArraySet,HashSet,LinkedHashSet,TreeSet。
2、Set是如何实现元素唯一性的
javadoc中对Set的描述第一段如下:“A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1
and e2 such that e1.equals(e2), and at most one null element. As implied by its name, this interface models the mathematical set abstraction.”
这段话是对是错,请看下面分析。
要进行下面的论述,我们先了解一下Map。Map中的元素是“键-值”对,其中“键”必须是唯一的。TreeSet和HashSet就是利用这个特性实现“no duplicate elements”。它把set中的元素作为Map中的“键”,从而保持元素的唯一性。这些键在Map中又是如何区分的呢?不同的Map有不同的做法,而且区别很大。
下面我们分别就TreeSet、HashSet和CopyOnWriteArraySet进行论述:
2.1、TreeSet部分:
以下以TreeSet为例进行分析。
请看TreeSet的部分实体:
public class TreeSet extends AbstractSet
implements SortedSet, Cloneable, java.io.Ser


相关文档:

浅谈Java的输入输出流

 Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个简要的介绍。 ......

java基础

JSP的9个内置对象是:out、request、response、page、pageContext、session、application、exception、config。要注意对象名的大小写
 
 
What results from attempting to compile and run the following code? public class Ternary{ public static void main(String args[]){ int a = 5; System.out.printl ......

Java环境变量配置

 装了win7以后重新配置了java的环境变量。
首先,JDK和JRE的区别:jdk(java development toolkit) jre(java run environment),前者就像是个java的编译器,后者提供一个运行环境,java虚拟机吧。一般只用装jdk就行了,里面自动会有个jre。
我的过程:
1. 先解压Eclipse,运行需要虚拟机
2. 安装jre6,不用任何 ......

初学JAVA之三

1、编写一个简单的文本编辑器,要求:具有打开、保存、新建,粘贴、复制等功能;具有一个工具条。
 
1.1、程序源码(参见menu.java):
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.URL;
 
public class menu extends JFrame impl ......

java中List集合的使用

 在Java中如果List 结合存取的是许多类型不同的数据如int,String 类型都有,那么如何使用JSTL表达式循环获取List集合中的元素呢?
如:假如List list=new ArrayList();    int a=1; String b="sss";    String c="ddddddd";……在Servlet中 使用Session 保存
session.set ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号