
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
分享到:
相关推荐
### Collection Framework 学习笔记知识点概述 #### 一、Java5 Collection Framework 概览 - **数组类 Array**:在 Java 中,数组是最基础的数据结构之一,用于存储一系列连续的对象或基本类型的数据。数组的特点...
`Collection`是最基础的接口,它是所有集合的父接口,但它不提供`get()`方法,通常我们通过`Iterator`遍历`Collection`。`List`接口继承自`Collection`,它维护了元素的顺序,并允许重复元素。`ArrayList`和`...
在本笔记中,我们将深入探讨LINQ的基本概念、语法以及如何在实际开发中有效地利用它。 **1. LINQ的基本理念** LINQ的核心理念是将查询表达式集成到编程语言本身,使得数据查询如同操作数组或其他集合一样简单直观...
#### Java集合框架(Collection Framework) Java集合框架提供了一组用于存储和操作对象的接口和类。主要包括`Collection`和`Map`两个顶级接口。 1. **Collection**:这是一个顶级接口,表示一组对象,这些对象...
类集框架、JDBC.pdf**:类集框架(Collection Framework)是Java中用于存储和操作数据的工具,包括List、Set、Map接口及其实现。JDBC(Java Database Connectivity)则是与数据库交互的标准API,讲解了如何连接...
1.4. 无用存储单元收集垃圾回收(Garbage Collection)是 .NET Framework 提供的一项自动内存管理功能。当不再有引用指向一个对象时,GC 会自动释放该对象占用的内存,避免内存泄漏。1.5. C#与.NET FRAMEWORKC# 是一...
1. **什么是CLR**: CLR是.NET Framework的核心组件,它负责管理代码的执行环境,包括内存管理、类型安全、异常处理、线程管理和代码执行优化等。 2. **JIT编译**:CLR使用Just-In-Time(JIT)编译器将中间语言(IL...
它是Visual Basic的.NET版本,集成了.NET Framework,提供了更强大的功能和性能优化。在VB.NET 2005中,学习笔记涵盖了一些基本概念,包括数据类型、变量与常量、数组、枚举类型、结构类型、语法规则以及流程控制。 ...
- **VO Collection**:一组 VO 的集合,通常用于复杂的数据结构。 - **Page (页面)**:用户界面元素的容器,包含各种组件如表格、输入框等。 - **CO (Component Object)**:页面上的控件,负责页面上组件的行为和...
八、Garbage Collection C#具有自动内存管理机制,即垃圾收集器(Garbage Collector)。它负责跟踪并回收不再使用的内存,使得开发者无需手动管理内存,降低了内存泄漏的风险。 九、Lambda表达式和表达式树 Lambda...
19. 集合框架(Collection Framework): - 包括接口(如`List`, `Set`, `Map`)和实现类(如`ArrayList`, `HashSet`, `HashMap`),提供高效的数据存储和操作。 这份笔记全面地覆盖了SCJP考试的关键知识点,是...
10. 集合框架(Collections Framework):包括数组列表(ArrayList)、链表(LinkedList)、哈希映射(HashMap)等数据结构,方便存储和操作对象。 11. 内存管理:Java使用垃圾回收机制(Garbage Collection)自动...
Framework学习文档是关于Struts2、Mybatis、JavaScript和jQuery的详细笔记,涵盖了这些技术的基本概念、架构、配置、使用方法等方面的知识点。 一、Struts2框架 1. Struts2是典型的MVC框架,在整个MVC框架中充当...
- 垃圾回收(Garbage Collection):自动管理内存,避免内存泄漏。 - 泛型(Generic):提供类型安全的数据容器,可以应用于类、接口和方法。 - LINQ(Language Integrated Query):集成查询语言,简化数据访问...
### ASP.NET自学笔记知识点梳理 #### 一、Visual Studio 操作要点 1. **数据库操作注意事项**: - **MDF 文件与 SQL Server 数据库**:在 Visual Studio 2008 中创建的 `.mdf` 文件本质上是 SQL Server 的数据库...
例如:`for (Type element : collection) { // code }` 4. **可变参数(Varargs)** 这个特性允许函数接收不定数量的参数,通过`...`语法表示。这在处理数组或不确定数量输入时非常有用。 5. **静态导入(Static ...
### .NET Framework 复习知识点总结 #### 一、系统类型的分类 - **开发环境分类**:根据开发环境的不同需求,系统类型可以分为弱类型和强类型。 - **弱类型**:指的是变量的类型在运行时才能确定,如动态语言中的...
7. OJB通过`<reference-descriptor/>`和`<collection-descriptor/>`管理对象间关系,支持一对一、一对多、多对多关系,并提供了自动删除、自动加载和自动更新的配置选项。 8. OJB处理JDBC类型与Java类型的转换,解决...
3. **Garbage Collection**:C#中的垃圾回收机制是自动的,由CLR管理内存,当对象不再被引用时,会自动释放内存,避免内存泄漏。 4. **LINQ(Language Integrated Query)**:C# 3.0引入了LINQ,允许开发者使用一致...