2014-04-09 3 views
0

첫 번째로 지금까지 도움을 준 커뮤니티에 감사드립니다.Arraylist 내에서 특정 문자열을 검색하는 방법

필자는 지시문을 작성해야만 키 이름이 포함 된 Fragment를 찾아야한다고 나와 있습니다.

ArrayList<Fragment> collage; 

지금, 나는이 방법 indexOf.contains과 실험이,하지만 난 그것을 알아낼 수 없습니다. 난 당신이 값으로 문자열을해야 알아낼 "키"

String str = "key"; 

는 그런하는 "키"발견 된 인덱스를 찾기 위해 같이 IndexOf를 사용할 수 있습니까? 이게 맞습니까, 아니면 indexOf가 문자열에서만 작동합니까? 누구나 나를 올바른 방향으로 안내 할 수 있습니까? 미리 감사드립니다.

+0

; Java 7에서는 적어도 .stream(). allMatch()를 사용할 수 있습니다. Java 7을 사용하면 루프와 추출이 필요합니다. 또는 Guava,'Iterables.filter()'를'Predicate'로 사용하는 경우 – fge

+0

'Fragment' 목록에서'String'을 찾을 수 없습니다. – Axel

+0

"또는 indexOf는 문자열에서만 작동합니다."... equals 메소드를 사용하므로 String에서만 작동하지 않습니다. 그러나'Fragment'는'String'과 같지 않을 가능성이 큽니다. – qqilihq

답변

1

목록에서 모든 요소는 게재 신청서에 저장됩니다. 따라서 순서를 얻으려면 indexOf() 메서드를 사용하여이 목록에서 지정된 요소의 첫 항목 색인을 반환합니다. 목록에 특정 문자열이 있는지 여부를 확인하려면 을 사용하십시오. 부울 값을 반환하고 목록에서 발생하는 order/index 또는 시간 수와는 아무런 관련이 없습니다.

+0

삽입 순서 _에 저장됩니다. 그것은 중요한 차이입니다. – fge

1

당신은 간단한 for 루프와 함께 할 수 있습니다 : 당신이 사용하는 것이 좋습니다 그러나

ArrayList<Fragment> collage = new ArrayList<String>(); 
//... 
for (Fragmenttmp: collage){ 
    if (tmp.name.equals(key)) 
     //do something 
} 

HashMap :

HashMap<String, Fragment> collage = new HashMap<String, Fragment>(); 
//... 
collage.get(key); 
당신은 직접`List`에 할 수 없어
관련 문제