ArrayList,HashSet的比较
来源:互联网 发布:define在c语言中用法 编辑:程序博客网 时间:2024/05/18 13:12
1,ArrayList有序 可重复,HashSet,无序,不可重复,先判断有没有相等的对象,再放入.
2,如果两个对象的equals对象相等,就要让它们的hashcode值相等
/*只有类的实例对象要被采用哈希算法进行存储和检索的时候,这个类才需要按照要求覆盖hashCode
方法.虽然程序可能暂时不会用到当前类的hashCode方法,但是为它
提供一个hashCode方法也不会有什么不好,可能以后就能用到这个方法了,
所以,通常要求hashCode方法的和equals方法一并被同时覆盖.*/
3,内存泄漏问题:
练习实例:
package cn.itcast.day1;
import java.io.*;
import java.util.*;
public class ReflextTest2 {
public static void main(String[] args) throws Exception {
Collection collections = new HashSet();
ReflectPoint pt1 = new ReflectPoint(3,3);
ReflectPoint pt2 = new ReflectPoint(5,5);
ReflectPoint pt3 = new ReflectPoint(3,3);
collections.add(pt1);
collections.add(pt2);
collections.add(pt3);
collections.add(pt1);
pt1.y = 7; //引起内存泄漏的地方
collections.remove(pt1);
System.out.println(collections.size());
}
}
//
package cn.itcast.day1;
public class ReflectPoint {
private int x ;
public int y ;
public String str1 = "ball";
public String str2 = "basketball";
public String str3 = "itcast";
public ReflectPoint(int x, int y) {
super();
this.x = x;
this.y = y;
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + x;
result = prime * result + y;
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ReflectPoint other = (ReflectPoint) obj;
if (x != other.x)
return false;
if (y != other.y)
return false;
return true;
}
public String toString(){
return str1 + ":" + str2 + ":" + str3;
}
}
- ArrayList,HashSet的比较
- ArrayList HashSet的比较,以及HashSet分析
- ArrayList、HashSet的比较及Hashcode分析
- ArrayList、HashSet的比较及Hashcode分析
- arrayList hashset的比较及hashcode分析
- ArrayList和HashSet比较
- 黑马程序员---ArrayList和HashSet的比较、hashCode的分析
- 观察比较ArrayList,HashSet,HashMap的存储机制
- ArrayList和HashSet对的比较及HasCode分析
- ArrayList与HashSet的比较,以及HashCode分析, 内存泄露
- ArrayList与HashSet比较及HashCode分析
- arrayList 和hashSet的区别
- hashSet 和arrayList的区别
- 关于 Arraylist和HashSet中元素比较的问题所引发的思考
- ArrayList 和 HashTable 和 HashSet 和 List 和 Dictionary 之间关于插入查询的时间比较
- java学习之ArrayList和HashSet的比较以及HashCode分析
- java第十二天 Arraylist和HashSet的比较、类加载器
- java基础巩固系列(五):ArrayList与HashSet的比较,以及HashCode分析
- 如何抓取QQ2010的聊天框
- (转载)多线程编程
- Java Socket编程中加入代理
- 第一篇博客
- IE6 Form submit 不提交的解决方案
- ArrayList,HashSet的比较
- 2011年Android Binder机制学习笔记之一
- win7下安装rose2003报错:Error 1904. rose.exe failed to register
- poj 2018
- JSDB初体验
- SQL提高性能的方法总结
- MFC WindowProc AfxWndProc lpfnWndProc
- .SVN清理脚本
- poj 3878 zoj 3391 haunted graveyard