>  Q&A  >  본문

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_lee2763일 전3004

모든 응답(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 등의 툴 클래스를 사용하는 것이 좋으며, 스프링에서 제공하는 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(""); 항상 거짓

    출력한 결과a**[]를 보면 map.get(a).toString()가 빈 문자열이 아니고 []이므로 "[]".equals("")은 항상 false

    임을 알 수 있습니다.

    map.get(a)! =null; 항상 참

    map.get(a).toString()이 null 포인터 예외를 발생시키지 않으면 map.get(a)은 null이 아니어야 합니다

    빈 판사

    키에 해당하는 값이 항상 ArrayList인 경우 다음 방법을 사용할 수 있습니다.

    으아악

    회신하다
    0
  • 취소회신하다