検索

ホームページ  >  に質問  >  本文

java - 怎么判断map key对应的值是不是空的

System.out.println("a**"+map.get(a).getClass());
System.out.println("a**"+map.get(a));

-------------分割线------------
a**class java.util.ArrayList
a**[]

以上是控制台打印出来的东西。

map.get(a).toString().equals("");一直是false
map.get(a)!=null;一直是true

ringa_leeringa_lee2804日前3050

全員に返信(4)返信します

  • ringa_lee

    ringa_lee2017-04-18 09:09:32

    if(map.get(a)==null)空かどうかわかりませんか?

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:09:32

    Java では、null と空の配列は同じ概念ではありません。配列が空かどうかを確認したい場合は、次のように記述できます。

    `
    if (map.get(a) == null || map.get(a).size() == 0)
    `

    本番環境の場合は、apache common または Spring が提供する CollectionUtils.isEmpty(map.get(a))

    などのツール クラスを使用することをお勧めします。

    返事
    0
  • 高洛峰

    高洛峰2017-04-18 09:09:32

    ArrayList がインスタンス化されている場合、それは明らかに null に等しくありません。
    toString メソッドはエラーを報告せずに実行できるため、インスタンス化されている必要があります。 toString は最上位の親クラス Object のメソッドであるため、インスタンス化されていないオブジェクトがこのメソッドを持つことができます。

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:09:32

    map.get(a).toString().equals(""); 常に false

    出力した結果a**[] を見ると、map.get(a).toString() は空の文字列ではなく [] であるため、"[]".equals("") は常に false であることがわかります

    map.get(a)! =null; 常に true

    map.get(a).toString() が null ポインター例外をスローしない場合、map.get(a) は非 null でなければなりません

    空のジャッジ

    キーに対応する値が常に ArrayList である場合、次のメソッドを使用できます:

    リーリー

    返事
    0
  • キャンセル返事