Java詳細:Listはadd(null)できますか?

963 ワード

コードを書くとき、forループに遭遇することがありますが、下に書くときは少しためらいます.
List dataList = ...;
for (Data d : dataList) {
    if (d != null) { //         ?
        // ...
    }
}

遍歴するときは、各要素を空にする必要がありますか?すなわち、リストはadd nullを許可できるかどうか.そして実験してみると、意外にもできることに気づきました.(私の前の理解はだめです.add nullは何も起こらないかもしれません)
static class Data {
    String mName;
    public Data(String s) {
        this.mName = s;
    }

    @Override
    public String toString() {
        return "Data:" + mName;
    }
}

public static void main(String[] args) {
    List dataList = new ArrayList<>();
    dataList.add(null);
    dataList.add(new Data("shit"));
    System.out.println(dataList.size()); //       2

    for (Data d : dataList) {
        System.out.println(d.mName); //         
    }
}

はい、このように心の中の疑問は解消されて、遍歴する時、すべての要素に対して空を判断する必要があります.
リファレンスArrayListでnullの追加が許可されている理由についてhttps://softwareengineering.s...