Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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中30k字符串的静态列表匹配_Java - Fatal编程技术网

将字符串与java中30k字符串的静态列表匹配

将字符串与java中30k字符串的静态列表匹配,java,Java,我有以下情况:- 字符串accountNum=“3456”; 静态列表显示30k字符串,如1334345777677885566…最多30k。 如果accountNum存在于30k静态列表中,则显示是,否则显示否 在java中,在性能、内存方面,处理这种情况的最佳方法是什么?将字符串转换为整数并使用java.util.BitSet 这是一个按位操作,因此节省内存 public static void main(String[] args) { BitSet bit = new BitSe

我有以下情况:-

字符串accountNum=“3456”; 静态列表显示30k字符串,如1334345777677885566…最多30k。 如果accountNum存在于30k静态列表中,则显示是,否则显示否


在java中,在性能、内存方面,处理这种情况的最佳方法是什么?

将字符串转换为整数并使用java.util.BitSet

这是一个按位操作,因此节省内存

public static void main(String[] args) {
    BitSet bit = new BitSet(30000);

    bit.set(1122);
    bit.set(3344);
    bit.set(5566);
    //.....

    System.out.println(bit.get(1122)); //true
}

将它们保存在int(primitive)中,这是为了内存。为了检查是否存在,您需要将它们放在HashSet中,并将它们保存在Integer对象中。使用
整数的
集合,而不是
整数的
集合,这样在使用
集合时,您就有了O(1)访问时间。contains()
(Micro-)内存优化?制作一个排序的独立的
short[]
并使用二进制搜索。@Lino-这些30K字符串可能会定期更新,因此需要存储在某个位置,这样就不会每次都有代码更改。请建议储存这些巨大物品的最佳做法strings@RaviKukreja您应该将数据存储在某种形式的文件中。然后在运行时读取此文件。这样您就不必更改代码了。谢谢。这些30K字符串可能会定期更新,因此需要存储在某个位置,这样就不会每次都有代码更改。请建议存储这些巨大字符串的最佳做法。