하루하루1
789
2021-06-07 16:18:35
3
136

list null 질문..


List<String> map = adminDao.getFileList(dto);

System.out.println("map ::: " + map);

System.out.println("map.size() ::: " + map.isEmpty());


이렇게 코드를 작성하였는데 콘솔창에 이렇게 찍힙니다.

map ::: [null]

map.size() ::: 1


null인데 왜  사이즈가 1인가요?

isEmpty로 체크해도 false로 나오네요..

null 구분을 어떻게 해야하나요..?

0
  • 답변 3

  • 어느덧
    408
    2021-06-07 16:24:20 작성 2021-06-07 16:40:12 수정됨

    System.out.println("map.size() ::: " + map.isEmpty());

    map.size() 로 체크 안하시고 isEmpty() 로 체크하는게 잘못된거 같은데요? ^^;


    그리고 map의 결과가 null이 아닌 [null] 은 배열에 null값이 들어와 담겨졌다는거니

    잘 확인해보세요.

  • Dierslair
    4k
    2021-06-07 16:25:03

    Dao 로직이 의심스럽네요..

    List<String> list = adminDao.getFileList(dto)
      .stream()
      .filter(Objects::nonNull)
      .collect(Collectors.toList());


  • 크라
    121
    2021-06-08 13:45:59 작성 2021-06-08 13:46:59 수정됨

    map.isEmpty() 가 비었는가 묻는거 아닌가요? 

    그리고 

    		List<String> map = new ArrayList<String>();
    		System.out.println("map1 :::	" + map);
    		System.out.println("map.isEmpty()1 :::	" + map.isEmpty());
    		System.out.println("map.size()1 :::	" + map.size());
    		map.add(null);
    		System.out.println("map2 :::	" + map);
    		System.out.println("map.isEmpty()2 :::	" + map.isEmpty());
    		System.out.println("map.size()2 :::	" + map.size());


    이렇게 한번 해보세요. 


    import java.util.ArrayList;

    import java.util.List;


    추가하시구요.




    저는 

    map1 ::: []

    map.isEmpty()1 ::: true

    map.size()1 ::: 0

    map2 ::: [null]

    map.isEmpty()2 ::: false

    map.size()2 ::: 1


    이렇게 나왔네요.


  • 로그인을 하시면 답변을 등록할 수 있습니다.