2014-02-06 3 views
0

내가 가진 오전 LinkedList로 -NULL 문자열로 모든 요소가 포함되어 있는지 여부를 확인하는 방법?

List<String> tables = new LinkedList<String>(); 

때때로, tables 목록은 그 안에 모든 널 (null) 문자열 값이됩니다 의미처럼 보일 것 -

[null, null] 

을 식별하는 직접적인 방법이 있나요 tables 목록에 null 문자열과 같은 모든 요소가 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

내가 생각할 수있는 한 가지 방법은 그냥 반복하여 계속해서 null 문자열이 있는지 여부를 확인한 다음 그에 따라 true 또는 false를 반환하는 것입니다.

UPDATE : -

public static void main(String[] args) { 
String table_1 = null; 
String table_2 = "hello"; 
List<String> tables = new LinkedList<String>(); 
tables.add(table_1); 
tables.add(table_2); 

boolean ss = isAllNull(tables); 
System.out.println(ss); 
} 

public static boolean isAllNull(Iterable<?> list) { 
for (Object obj : list) { 
    if (obj != null) 
    return false; 
} 

return true; 
} 
+0

을 당신이 생각하는 방법은 올바른 길. –

답변

0

은 더 좋다. 당신은 구아바 라이브러리를 사용할 수있는 경우

+0

Iterable을 갖는 이점은 있습니까? 또는 List를 그대로 전달하지 않고 반복해야합니까? –

+0

예,'List' 인터페이스 대신'Iterable'을 사용하면이 유틸리티 메소드가'Set','Queue','Stack' 등등의 다른'Iterable' 구현체와 함께 작동하게 될 것입니다.이 유틸리티는 다형성을 극대화합니다. – Bnrdo

+0

차가움. 팁 주셔서 감사. 나는 내 질문을 업데이트했다. 내가하는 방식이 맞는지 아닌지 확인해 주시겠습니까? 두 번째 눈이 필요합니다 .. –

0

당신은 해결책이 정확했다. 널 (NULL)이 없는지 점검하고 첫 x 째 어커런스에서 false를 리턴 할 수 있습니다. 당신이 당신의 유틸리티 클래스는 넓은 범위에서 작동하는이 폴더의 유틸리티가 Iterable 인터페이스를 받아들이는

public static boolean isAllNull(Iterable<?> list){ 
    for(Object obj : list){ 
     if(obj != null) 
      return false; 
    } 

    return true; 
} 

주의의 일환으로 그것을 만들 경우 예 당신이 무슨 생각

String table_1 = null; 
String table_2 = null; 
List<String> tables = new LinkedList<>(); 
tables.add(table_1); 
tables.add(table_2); 

for (String table : tables) { 
    if (table != null) 
    {System.out.println("False");} 
} 
2

: static import으로

Iterables.all(input, Predicates.isNull()); 

을 심지어 더 읽기 될 것입니다 :

import static com.google.common.base.Predicates.isNull; 
import static com.google.common.collect.Iterables.all; 

Iterable<?> input = ... 
all(input, isNull()) 
0

을 제 3의 라이브러리없이 :

Set set = new HashSet(tables); 
boolean allNull = set.size() == 1 && set.iterator().next() == null; 
관련 문제