java 要怎么做,才能使两个String对象的值不同,但是hashcode相同?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 要怎么做,才能使两个String对象的值不同,但是hashcode相同?相关的知识,希望对你有一定的参考价值。
String 的 hashCode 好像是按字符的hashCode 排列的,然后字符相同,hashCode就想同,而且hashCode 没有set方法,也不能改变。。追问那如果是一个普通的,我自己定义的类的对象呢?
追答public class StringOne
private String value;
private int hashCode;
public String getValue()
return value;
public void setValue(String value)
this.value = value;
public int getHashCode()
return hashCode;
public void setHashCode(int hashCode)
this.hashCode = hashCode;
------------------------------------------------------------------------------------------------------------------------------------
public class StringTwo
private String value;
private int hashCode;
public String getValue()
return value;
public void setValue(String value)
this.value = value;
public int getHashCode()
return hashCode;
public void setHashCode(int hashCode)
this.hashCode = hashCode;
-------------------------------------------------------------------------
public class TestClass
public static void main(String[] args)
StringOne one = new StringOne();
StringTwo two = new StringTwo();
one.setValue("123");
one.setHashCode(123);
two.setValue("456");
two.setHashCode(123);
if (one.getHashCode() == two.getHashCode())
System.out.println("FUCK");
乱来的结果。。
String s2="123";
s.equals(s2);是真的
等不等都用这个.这是绝对等的.
比如
String fun(String s)
if(s.equals("")) return "假的" ;//判断空字符串
return "真的";
判断是否等于null就用 s==null
还有endWith,startWith 这些都是绝对等的.
我就没用过hashcode ,
就这么多. 参考技术B 反射
或者碰撞检测
java程序怎样写才能使程序健壮、稳定、可扩展性好
参考技术A 其实,如果是小系统,写出健壮,稳定,可扩展性好的系统或代码,基本只需要程序员的素养。如果是大系统,光有程序员的素养还不够,整个系统还要有一个系统的架构思想,和工程思想才能使系统健壮,稳定,可扩展性好起来。
当然还有,团队合作,协调,沟通能力还要好,一般中国人是做不到这一点的,^_^本回答被提问者采纳 参考技术B 当然是科学的工程管理方法了
总之就是有章程,有步骤
以上是关于java 要怎么做,才能使两个String对象的值不同,但是hashcode相同?的主要内容,如果未能解决你的问题,请参考以下文章
java中在方法调用的时候返回多个double类型的值应该怎么办?
结果集存放在 List<Map<String,Object>>中怎么使用Java代码遍历获取String,Object的值?