Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中从字符串创建唯一的整数?_Java_Database_String - Fatal编程技术网

如何在java中从字符串创建唯一的整数?

如何在java中从字符串创建唯一的整数?,java,database,string,Java,Database,String,我需要在Java中从一个字符串创建一个唯一的整数,这样冲突的机会就会少很多 有没有办法,我们可以在Java中创建一个对于同一个字符串总是唯一的整数 我必须将缺少的字符串存储在数据库中,因此我想将其转换为哈希代码,以便在触发SELECT查询时缩短检索时间。始终唯一?没有 你所说的基本上是散列,除非你的字符串没有比整数更多的信息内容,比如比特,否则你不能保证唯一性 您所能期望的最好结果是一些合理平衡的加载因子,并且网络上有许多通用的哈希函数 Java的对象类实际上提供了一个.hashCode方法,如

我需要在Java中从一个字符串创建一个唯一的整数,这样冲突的机会就会少很多

有没有办法,我们可以在Java中创建一个对于同一个字符串总是唯一的整数


我必须将缺少的字符串存储在数据库中,因此我想将其转换为哈希代码,以便在触发SELECT查询时缩短检索时间。

始终唯一?没有

你所说的基本上是散列,除非你的字符串没有比整数更多的信息内容,比如比特,否则你不能保证唯一性

您所能期望的最好结果是一些合理平衡的加载因子,并且网络上有许多通用的哈希函数

Java的对象类实际上提供了一个.hashCode方法,如果大多数子类需要不同的行为,它们可以覆盖该方法

事实上

因此,您可以简单地执行以下操作:

String str = "My hovercraft is full of eels";
int code = str.hashCode();

循环字符串并从字符串中获取一个字符,然后获取每个宪章的ascii并合并ascii。它将给出唯一的整数。下面是如何从字符中获取ascii的代码

String name = "admin";
char character = name.charAt(0); // This gives the character 'a'
int ascii = (int) character; // ascii is now 97.
看这个例子

import java.io.*;
public class Test {

   public static void main(String args[]) {
      String Str = new String("Welcome to Tutorialspoint.com");
      System.out.println("Hashcode for Str :" + Str.hashCode() );
   }
}
如果srring相同,那么它将生成相同的哈希代码

你也可以检查一下

那么,您需要将字符串作为输入,并生成唯一的整数?你的意思是像?的可能副本一样,我必须在数据库中存储缺少的字符串,因此我想转换为哈希代码以减少检索时间。如果需要更快的SELECT查询,只需在正在搜索的列上放置一个索引。数据库将为您处理所有的散列。所以不需要只对索引进行散列就可以了?兄弟姐妹和德黑兰人有相同的散列代码。当然。减少可用位数时总是会发生冲突。@Xentros:是的,请参阅我的第二和第三段:-即使字符集仅限于字母52的上/下字母,每个字符也只需要不到六位。这是大约48位的信息,而且由于Java int只有32位,因此必然会发生冲突。在任何情况下,单个Java字符不限于字母,每个字符需要16位。考虑到这些信息似乎来自,你应该提到,它们是58000个单词中仅有的两个冲突。