将字符串与java中30k字符串的静态列表匹配
我有以下情况:- 字符串accountNum=“3456”; 静态列表显示30k字符串,如1334345777677885566…最多30k。 如果accountNum存在于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
在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字符串可能会定期更新,因此需要存储在某个位置,这样就不会每次都有代码更改。请建议存储这些巨大字符串的最佳做法。