2015-01-06 10 views
1

나는이 하나 ArrayList를, 내가 ""빈 문자열 요소를 추가해야 할 몇 가지 이유 :자바 ArrayList의 크기 []

ArrayList<String> rList = new ArrayList<String>(); 
rList.add(""); 

그때 배열 목록 RLIST의 크기, RLIST를 참조하십시오. size() == 1 및 rList.isEmpty() == false입니다.

어떻게 이러한 배열 목록을 확인할 수 있습니까? empty 요소가 크기를 1로 만들고 비어 있지 않은가?

+1

예, 수학에서는 빈 세트만으로 구성된 세트가 비어 있습니다. 여기서 콜렉션은 스트링의 값에 대한 것이 아니라 그것의 존재에 대한 것이다. – lared

+2

잠깐, 뭐라구? 빈 집합의 집합은 수학에서 비어 있지 않습니다. 예 : http://en.wikipedia.org/wiki/Set-theoretic_definition_of_natural_numbers에서 1입니다. –

+0

'어떻게 이런 종류의 배열리스트를 확인할 수 있습니까? ' –

답변

7

빈 문자열을 목록에 추가하더라도 여전히 무언가 인을 목록에 추가하고 있습니다. 그리고 그게 중요합니다.

데이터는 비어있을 수 있습니다 (또는 null, ArrayList 당신이 null를 삽입 할 수로)하지만, 크기가 증가 할 것이다 (그리고 목록이 비어되지 않습니다). 당신은 단지 거기에 있는지 확인하려면 목록에서 그냥 종류의 요소의 (당신이 의견 상태로), 그 다음이 같은 가능성

이제 :

if(rList.size() == 1 && "".equals(rList.get(0)) { 
    // perform work 
} 

위의 라인은 것 목록에 단 하나의 항목 만 있으면 성공하고 빈 문자열 인 경우에만 성공합니다. 당신이 다른 방법으로 '라운드 이성을 상실, 그리고 0

+0

명확한 설명 주셔서 감사합니다. –

1

는 문자열이 비어 있는지 여부를 확인하려면 요소에 null이 있다면 그가 발생할 수 리터럴 및 get 문자열의 반대는 NullPointerException을 방지하는 것입니다 : 문자열 x = ""; 부울 isXEmpty = x.isEmpty();

예, 빈 문자열 인스턴스는 다른 문자열과 마찬가지로 유효한 인스턴스입니다. 그래서 그것은 중요합니다.

+0

고마워, 내가 너의 제안을 따를 수있을 것 같아. –

0

How can I check this kind of array list? 질문에 대답하려면 ArrayList에 반복을 통해 특정 값이 포함되어 있는지 확인하기 위해 색인을 검사 할 수 있습니다. 당신의 ArrayList의 모든 인덱스는 빈 문자열이 있다면 당신이 확인하는 경우

ArrayList<String> rList = new ArrayList<String>(); 
rList.add(""); 

for (String item : rList) { 
    if (item.equals("")) { 
     //do something 
    } 
} 

는 하나의 방법은 카운터를 추가하고 ArrayList의 크기를 비교하는 것입니다.

ArrayList<String> rList = new ArrayList<String>(); 
rList.add(""); 
rList.add(""); 
rList.add(""); 

int crossCheck = 0; 

for (String item : rList) { 
    if (item == null) {//equals() will throw a NPE when checking for null values 
     //do something 
    } else if (item.isEmpty()) { 
     crossCheck++; 
     //do something 
    } 
} 
//both are 3 in this case 
if (rList.size() == crossCheck) { 
    //all indices are empty Strings 
} 

마코토는 나머지 질문에 대해 훌륭한 답변을 제공합니다.

+0

목록에 'null'항목이 있으면 어떻게됩니까? – Makoto

+0

질문에 언급 된 색인이 없습니다. –

+0

글쎄,하지만 그게 내 요점은 아니야. 목록에 'null'이 포함될 수 있고 비어 있지 않을 수도 있습니다. 만약 당신이'NullPointerException'을 얻지 못했다고 확신하고 싶다면'equals'를 재정렬해야합니다. – Makoto

1

빈 목록을 확인하려면 다음 코드를 사용하십시오. 짝수 목록 크기 1이지만 get() 메소드는 null을 반환합니다. 을 사용하면 실제로 목록에 값이 없음을 확인할 수 있습니다.

if(someList.get(0)!=null) 
+0

리스트에 요소가없는 경우에서도,이 메소드는 여전히 IndexOutOfBoundsException를 throw 할 수 있습니다. – user3105453