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

for java beginner 14 ArrayList HashSet HashCode(中)

    博客分类:
  • JAVA
阅读更多
java 反射 数组的反射

ArrayList HashSet HashCode
---------------------------------
package com.ncs;

public class Point {

	

	private int x;
	public int y;
	
	public  String s1 ="ball";
	public String s2="hubin";
	public String s3="zhangxiaoxiang";
	//做实验而已,字段不可能是 public 的
	
	public Point(int x, int y) {
		super();
		this.x = x;
		this.y = y;
	}
	//这里来两个方法有时注释,有时没有注释,注意哦
	//这两个覆盖方法ECLIPSE有菜单的
	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + x;
		result = prime * result + y;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final Point other = (Point) obj;
		if (x != other.x)
			return false;
		if (y != other.y)
			return false;
		return true;
	}
	
}

-----------------------------------
package com.ncs;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

public class MyHashTest {

	public static void main(String[] args) {
		Point p1 = new Point(3,3);
		Point p2 = new Point(5,5);
		Point p3 = new Point(3,3); //看看和 p1有什么不一样
	
		Collection collection1 = new ArrayList();
		Collection collection2 = new HashSet();
		
		collection1.add(p1);
		System.out.println(collection1.size()); //1
		collection1.remove(p3);
		System.out.println(collection1.size()); //0 写了equals 和 hashcode了呀
		//我把int hashCode()去掉,还是老样子,因为是ArrayList,才不管你 哈稀值呢!!
		
		//但是我把public boolean equals(Object obj) 去了,哪就不一样了
		//1 1 了所以ArrayList 只和equals有关
		
		//再来
		collection1.add(p2);
		System.out.println(collection1.size()); //2,上面测试时留下的1个也在里面
		p2.y = 10; //修改里面的值
		collection1.remove(p2);
		System.out.println(collection1.size()); //1,即使修改了值,还是去了,因为P2指向不变
		//p2内存地址不变
		
		System.out.println("**************************");
		//看看hashset
		collection2.add(p1);
		collection2.add(p2);
		collection2.add(p3);
		collection2.add(p1);
		
		System.out.println(collection2.size()); //2 说你一样的加不进的
		//去掉 int hashCode(),就是3了,
		
		collection2.clear();
		System.out.println(collection2.size()); //0
		
		collection2.add(p1);
		p1.y=10; //修改了后,hashset就找不到了,不可以删除
		collection2.remove(p1);
		System.out.println(collection2.size()); //1
		
		//---------
		String s1 ="BB";
		String s2 = "Aa";
		
		System.out.println(s1.hashCode());//2112
		System.out.println(s2.hashCode());//2112
		
		
	}

}

------------------------------
分享到:
评论

相关推荐

    java for the beginner

    introduce in english

    Java A Beginner's Guide(6th) 无水印pdf

    Java A Beginner's Guide(6th) 英文无水印pdf 第6版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系...

    Java and Algorithmic Thinking for the Complete Beginner – Compact Edition

    This book is for anyone who wants to learn computer programming and knows absolutely nothing about it. If you are wondering whether this book is going to teach you how to create amazing applets or ...

    Pentaho 8 Reporting for Java Developers azw3

    Pentaho 8 Reporting for Java Developers 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    JAVA A beginner's guide sixth edition

    他还参与了Java SE7的策略和规划,并创立了JavaFX技术,设计了Java EE7标准中最大的新增功能,即Java WebSocket API。 7. 著作和职业:Coward除了编写和设计API之外,他还曾是Java社区过程的执行成员,并即将出版一...

    Java: A Beginner's Guide 5th Edition

    Fully updated to cover Java Platform, Standard Edition 7 (Java SE 7), Java: A Beginner's Guide, Fifth Edition starts with the basics, such as how to compile and run a Java program, and then discusses...

    Java A Beginner's guide

    这本《Java A Beginner’s Guide》第六版是由著名作者赫伯特·席尔德特撰写,席尔德特在编程领域有近三十年的经验,并且是Java语言领域的权威专家。他的书籍销量超过数百万册,被翻译成世界上的所有主要外语。他的...

    Java2:A Beginner's Guide Second Edition 原版 pdf

    容器和集合框架是Java的重要组成部分,读者将学习ArrayList、LinkedList、HashSet、HashMap等常用集合类的使用。同时,书中还会涉及多线程编程,如何创建和管理线程,以及同步机制,如synchronized关键字和wait()、...

    Java-Programming-for-Beginner:书

    6. **函数与方法**:函数是组织代码的基本单元,方法是Java中的函数。了解如何定义、调用和重载方法对于编写可重用的代码至关重要。 7. **类与对象**:面向对象编程是Java的核心。你需要理解类的定义、对象的创建,...

    Java_Programming_for_the_Absolute_Beginner.rar_absolute java_jav

    3. **包和导入**:Java中的包机制有助于管理类,防止命名冲突。"import"关键字用于引入所需的外部类或包,例如"java.util.*"常用于导入常用工具类。 4. **异常处理**:Java提供了一种强大的异常处理机制,通过try-...

    Algorithm-Machine-Learning-for-Beginner-by-Python3.zip

    Algorithm-Machine-Learning-for-Beginner-by-Python3.zip,斯克莱恩、坦索流。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。

    Java Programming for the Absolute Beginner

    4. **异常处理**:理解Java中的异常类型,如何抛出和捕获异常,以及try-catch-finally语句块的使用。 5. **输入输出流**:介绍I/O流的概念,包括文件读写、标准输入输出和对象序列化。 6. **集合框架**:学习...

    Java A Beginner's Guide(6th) epub

    Java A Beginner's Guide(6th) 英文epub 第6版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java A Beginner's Guide(6th) mobi

    Java A Beginner's Guide(6th) 英文mobi 第6版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java A Beginner’s Guide(7th) azw3

    Java A Beginner’s Guide(7th) 英文azw3 第7版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java A Beginner’s Guide(7th) epub

    Java A Beginner’s Guide(7th) 英文epub 第7版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

Global site tag (gtag.js) - Google Analytics