contains と indexOf と equals
出力はどれか。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> a = new ArrayList<>();
a.add("x");
a.add("y");
ArrayList<String> b = new ArrayList<>();
b.add("x");
b.add("y");
System.out.println(a.contains("y") + " " + a.indexOf("z") + " " + a.equals(b) + " " + (a == b));
}
}
- A
true -1 true false - B
true -1 false false - C
true 0 true false - D
false -1 true false
正解と解説を見る
正解: A
- A: contains は true、無い要素の indexOf は -1、要素と順番が同じリストの equals は true、別のオブジェクトなので == は false です。
- B: ArrayList の equals は中身 (要素と順番) を比べるので true です。
- C: 見つからないときの indexOf は -1 です。
- D: "y" はリストに入っているので contains は true です。
ポイント
containsとindexOfは equals で要素を探します。見つからないと indexOf は -1 です。- ArrayList の equals は、要素と順番が同じなら true です (配列や StringBuilder と違う点)。