使用数组作为其键/类型的Collection

时间:2013-10-09 16:08:50

标签: java arrays dictionary collections set

我的程序必须在线程之间传递大量数组。我想要一个可以接受数组的集合,然后一个contains方法将指定一个Set / Map是否包含该数组(即它是重复的还是已被线程处理过)。我假设此集合必须使用Arrays.equals(a1, a2),因为Object.equals()方法will not work on arrays。是否可以编写一个像这样工作的集合,或者从int []到Integer []自动装箱时是否会失败?

1 个答案:

答案 0 :(得分:6)

使用Array的包装,其覆盖hashCode()equals(),如Arrays.asList()

顺便说一下,你应该尽可能避免使用数组并选择收藏。我还建议您使用不可变数据结构进行多线程处理。无论如何,在集合中使用可变对象或作为地图的关键是一个可怕的想法。