java学习之ArrayList和HashSet的比较以及HashCode分析
来源:互联网 发布:247143nx 4010淘宝价格 编辑:程序博客网 时间:2024/05/23 15:06
ArrayList
是对象的有顺序排放
HashSet
当一个对象放进去时,先检查里面有无相等的对象(equals),有相等的对象就不放进去
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
public class ReflectTest2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection collections= new HashSet(); //new ArrayList();
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);
System.out.println(collections.size());
}
}
当是HashSet时输出3 最后一个 collections.add(pt1);并没有放进去,当是new ArrayList();是输出是4
HashCode方法:将集合分成若干个存储区域,每个对象可以计算出一个哈希码,将哈希码分组,每组分别对应某个存储区域,根据一个对象的哈希码就可以确定该对象存储在哪个区域
当一个对象被存储进HashSet集合中以后,就不能修改这个对象中那些参与哈希值计算的字段了,否则,对象修改后的哈希值与最初存储进HashSet集合中的哈希值就不同了,这种情况下,将会导致无法从HashSet集合中单独删除当前对象,从而造成内存泄露
如
collections.add(pt1);
pt1.y=4;
collections.remove(pt1);
则会删除失败,造成内存泄露
内存泄露:就是有一个对象没有用了,但也没有被释放掉,继续占有内存空间,这就叫内存泄露!
- java学习之ArrayList和HashSet的比较以及HashCode分析
- ArrayList与HashSet的比较,以及HashCode分析, 内存泄露
- java基础巩固系列(五):ArrayList与HashSet的比较,以及HashCode分析
- 黑马程序员---ArrayList和HashSet的比较、hashCode的分析
- ArrayList、HashSet的比较及Hashcode分析
- ArrayList、HashSet的比较及Hashcode分析
- arrayList hashset的比较及hashcode分析
- ArrayList HashSet的比较,以及HashSet分析
- Java基础知识_ArrayList和HashSet的比较,以及HashCode方法
- 黑马程序员-ArrayList、HashSet比较和HashCode分析
- ArrayList与HashSet比较及HashCode分析
- Java中ArrayList HashSet的使用 以及HashCode的用处
- 黑马java学习笔记_ArrayList 和HashSet的比较及HashCode分析和Java中内存泄漏的探讨
- ArrayList和HashSet对的比较及HasCode分析
- ArrayList和HashSet和hashcode
- ArrayList和HashSet比较
- 黑马程序员——ArrayList&HashSet&Hashcode的学习总结
- ArrayList,HashSet的比较
- c#3.0 新特性 ---对象初始化器
- 限制 Xen Dom0 的内存
- updatepanel中使用alert
- 《编码:隐匿在计算机软硬件背后的语言》笔记02
- STAF的原理及使用
- java学习之ArrayList和HashSet的比较以及HashCode分析
- asp.net 结合swftools将pdf文件转换为swf文件
- Sql Hacks 阅读感悟——联机应用
- 关于activity学习笔记整理——生命周期
- 【IT动态】工信部:不允许拦截弹出式广告
- 电话短信问题(转)
- Windows下下载Android源代码的方法
- vs2008程序的发布(解决vs2008的“由于应用程序的配置不正确,应用程序未能启动的问题”)
- Mapping