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");




乱来的结果。。

参考技术A string s="123";
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 list后台数据合并怎么做?

java中在方法调用的时候返回多个double类型的值应该怎么办?

java field获取值

在某些情况下,我该怎么做才能使这个 SQL 返回结果?

java中怎么比较两个日期的大小

结果集存放在 List<Map<String,Object>>中怎么使用Java代码遍历获取String,Object的值?