String []的元素可以以不同的順序排列,並且仍然可以將整個數組視爲與另一個包含相同元素的另一個數組相同的順序?如果是的話,你確實會更好地實現一個容器類,並重寫equals和hashcode。
如果沒有,並且如果存儲所述內部元件作爲解釋,而不是陣列是可以接受的替代,則可以做到這一點:
package com.stackoverflow;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class StringContainment {
public static void main(final String[] args) {
final Set<String[]> s = new HashSet<String[]>();
final Set<List<String>> s2 = new HashSet<List<String>>();
s.add(new String[] {"lucy", "simon"});
s2.add(Arrays.asList(new String[] { "lucy", "simon" }));
System.out.println(s.contains(new String[] {"lucy", "simon"})); // false
System.out.println(s2.contains(Arrays.asList(new String[] {"lucy", "simon"}))); // true
}
}
第一檢查將返回false,第二真。 如果您可以使用列表,可能會更容易。
如果你不能,那麼只要你不需要太頻繁地進行這種比較(這在性能方面絕對不是一個好主意)。
+1爲深等於解釋 – Barthelemy 2010-11-26 11:24:09