`
choelea
  • 浏览: 75283 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Collection Framework 笔记

    博客分类:
  • Java
阅读更多



 

  Java 2简化集合框架图

 

set集合众的对象唯一性的判断:

class ClientVO{
	private int id;
	private String name;
	
	public ClientVO(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public boolean equals(Object obj) {
		if (obj instanceof ClientVO) {
			ClientVO vo = (ClientVO) obj;
			if(this.getName()!=null && this.getName().equals(vo.getName())){
				return true;
			}
		}
		return false;
	}
	@Override
	public int hashCode() {
		return 32*id+id;
	}
	
}
private static void testHashSet(){
  HashSet set=new HashSet();
  set.add(new ClientVO(111,"ChoeLea"));// add item 1
  set.add(new ClientVO(111,"Joe")); // add item2 which has the same hashcode with item1
  set.add(new ClientVO(123,"Joe")); // item 3
  System.out.println(set.size());  //Result:3 
  set.add(new ClientVO(111,"Joe"));// item 4
  System.out.println(set.size());//Result:3 so the items 4 can not be added into the set
  System.out.println(set.contains(new ClientVO(11,"Joe")));//Result: false;
  System.out.println(set.contains(new ClientVO(111,"Joe11")));//Result: false;
  System.out.println(set.contains(new ClientVO(111,"Joe")));//Result: true;
 }

 HashSet  从hash这个关键字可以看出是无序的。 HashSet通过equals && hashCode 方法来判断是否重复。contain的判断也是同样的规则。HashSet是非线程安全。

LinkedHashSet 继承自HashSet,因此在判断是否重复上有同样的规则。

TreeSet是实现set接口有序的集合,所以所有加入TreeSet的对象需要实现Comparable 接口,否则将抛出异常: java.lang.ClassCastException

  • 大小: 5.9 KB
0
0
分享到:
评论

相关推荐

    Collection Framework 学习笔记.pdf

    ### Collection Framework 学习笔记知识点概述 #### 一、Java5 Collection Framework 概览 - **数组类 Array**:在 Java 中,数组是最基础的数据结构之一,用于存储一系列连续的对象或基本类型的数据。数组的特点...

    Java集合框架学习笔记

    `Collection`是最基础的接口,它是所有集合的父接口,但它不提供`get()`方法,通常我们通过`Iterator`遍历`Collection`。`List`接口继承自`Collection`,它维护了元素的顺序,并允许重复元素。`ArrayList`和`...

    linq 实用学习笔记

    在本笔记中,我们将深入探讨LINQ的基本概念、语法以及如何在实际开发中有效地利用它。 **1. LINQ的基本理念** LINQ的核心理念是将查询表达式集成到编程语言本身,使得数据查询如同操作数组或其他集合一样简单直观...

    jsp二期学习笔记(北大青鸟二期学习)

    #### Java集合框架(Collection Framework) Java集合框架提供了一组用于存储和操作对象的接口和类。主要包括`Collection`和`Map`两个顶级接口。 1. **Collection**:这是一个顶级接口,表示一组对象,这些对象...

    李兴华2012最新JAVA笔记

    类集框架、JDBC.pdf**:类集框架(Collection Framework)是Java中用于存储和操作数据的工具,包括List、Set、Map接口及其实现。JDBC(Java Database Connectivity)则是与数据库交互的标准API,讲解了如何连接...

    C# 学习笔记.doc

    1.4. 无用存储单元收集垃圾回收(Garbage Collection)是 .NET Framework 提供的一项自动内存管理功能。当不再有引用指向一个对象时,GC 会自动释放该对象占用的内存,避免内存泄漏。1.5. C#与.NET FRAMEWORKC# 是一...

    CLR笔记(一)

    1. **什么是CLR**: CLR是.NET Framework的核心组件,它负责管理代码的执行环境,包括内存管理、类型安全、异常处理、线程管理和代码执行优化等。 2. **JIT编译**:CLR使用Just-In-Time(JIT)编译器将中间语言(IL...

    VB.NET 学习笔记

    它是Visual Basic的.NET版本,集成了.NET Framework,提供了更强大的功能和性能优化。在VB.NET 2005中,学习笔记涵盖了一些基本概念,包括数据类型、变量与常量、数组、枚举类型、结构类型、语法规则以及流程控制。 ...

    OracleEBS R12-OAF开发笔记

    - **VO Collection**:一组 VO 的集合,通常用于复杂的数据结构。 - **Page (页面)**:用户界面元素的容器,包含各种组件如表格、输入框等。 - **CO (Component Object)**:页面上的控件,负责页面上组件的行为和...

    c#程序设计读书笔记

    八、Garbage Collection C#具有自动内存管理机制,即垃圾收集器(Garbage Collector)。它负责跟踪并回收不再使用的内存,使得开发者无需手动管理内存,降低了内存泄漏的风险。 九、Lambda表达式和表达式树 Lambda...

    JAVA认证-SCJP阅读笔记

    19. 集合框架(Collection Framework): - 包括接口(如`List`, `Set`, `Map`)和实现类(如`ArrayList`, `HashSet`, `HashMap`),提供高效的数据存储和操作。 这份笔记全面地覆盖了SCJP考试的关键知识点,是...

    java学习笔记

    10. 集合框架(Collections Framework):包括数组列表(ArrayList)、链表(LinkedList)、哈希映射(HashMap)等数据结构,方便存储和操作对象。 11. 内存管理:Java使用垃圾回收机制(Garbage Collection)自动...

    Framework学习文档

    Framework学习文档是关于Struts2、Mybatis、JavaScript和jQuery的详细笔记,涵盖了这些技术的基本概念、架构、配置、使用方法等方面的知识点。 一、Struts2框架 1. Struts2是典型的MVC框架,在整个MVC框架中充当...

    C#资料汇总 基础知识 核心知识 读书笔记

    - 垃圾回收(Garbage Collection):自动管理内存,避免内存泄漏。 - 泛型(Generic):提供类型安全的数据容器,可以应用于类、接口和方法。 - LINQ(Language Integrated Query):集成查询语言,简化数据访问...

    ASP.net自学笔记

    ### ASP.NET自学笔记知识点梳理 #### 一、Visual Studio 操作要点 1. **数据库操作注意事项**: - **MDF 文件与 SQL Server 数据库**:在 Visual Studio 2008 中创建的 `.mdf` 文件本质上是 SQL Server 的数据库...

    良葛格Java JDK 5.0学习笔记

    例如:`for (Type element : collection) { // code }` 4. **可变参数(Varargs)** 这个特性允许函数接收不定数量的参数,通过`...`语法表示。这在处理数组或不确定数量输入时非常有用。 5. **静态导入(Static ...

    .net Framwork 复习试题与笔记

    ### .NET Framework 复习知识点总结 #### 一、系统类型的分类 - **开发环境分类**:根据开发环境的不同需求,系统类型可以分为弱类型和强类型。 - **弱类型**:指的是变量的类型在运行时才能确定,如动态语言中的...

    lego2学习手册 ( LEGO框架学习笔记)

    7. OJB通过`<reference-descriptor/>`和`<collection-descriptor/>`管理对象间关系,支持一对一、一对多、多对多关系,并提供了自动删除、自动加载和自动更新的配置选项。 8. OJB处理JDBC类型与Java类型的转换,解决...

    YuanGoLearnSomething:一个存储我的知识,我的笔记和日常生活想法的地方

    3. **Garbage Collection**:C#中的垃圾回收机制是自动的,由CLR管理内存,当对象不再被引用时,会自动释放内存,避免内存泄漏。 4. **LINQ(Language Integrated Query)**:C# 3.0引入了LINQ,允许开发者使用一致...

Global site tag (gtag.js) - Google Analytics