0

配列が別の配列と等しい場合に何かを実行できるようにしようとしています。

このようなもの:

ArrayList<String> array = new ArrayList<String>();
gridArray.add(string1);
gridArray.add(string2);
gridArray.add(string3);
gridArray.add(string4);

if (array == {a,b,c,d}) {
....
}
if (array == {e,f,g,h}) {
....
}

string1などはすべて変数であるため、このコードを実行するたびに異なります。私が達成したい主なことは、a、b、c、dなどを配列に個別に追加する必要がないことです('array'のように)。 b、c、d、および単なるa、b、c、dよりもはるかに多くの値。

4

3 に答える 3

3

配列を作成したくない場合、これはより冗長になります。簡単な方法は次のとおりです。

if (array.equals(Arrays.asList(a, b, c, d)) {}

これは、arraylistに a、b、c、および d が (同じ順序で) 正確に含まれている場合に true を返します。

2 つのリストは、同じ要素が同じ順序で含まれている場合、等しいと定義されます。

順序を気にしない場合は、使用することもできますcontainsAllが、追加の手順が必要になります。

List<String> target = Arrays.asList(a, b, c, d);
if (array.containsAll(target) && array.size() == target.size()) {}
于 2012-10-29T16:39:44.027 に答える
0

Arraysequals()これに使用できる 静的メソッドがあります。

String[] array = {"a", "b", "c", "d"};
if (Arrays.equals(array, new String[]{"a","b","c","d"})) {
    System.out.println("Equal!");
}
于 2012-10-29T16:39:23.967 に答える
0

または、 Apache Common の ArrayUtils比較機能を使用できます。

 isEquals

public static boolean isEquals(java.lang.Object array1,
                               java.lang.Object array2)

    Compares two arrays, using equals(), handling multi-dimensional arrays correctly.
于 2012-10-29T16:42:38.783 に答える