반응형
Java, "for each"루프에서 현재 색인 / 키를 얻는 방법
이 질문에는 이미 답변이 있습니다.
Java에서 Java 요소의 현재 색인은 어떻게 얻습니까?
for (Element song: question){
song.currentIndex(); //<<want the current index.
}
PHP에서는 다음과 같이 할 수 있습니다.
foreach ($arr as $index => $value) {
echo "Key: $index; Value: $value";
}
인덱스를 별도로 보관할 필요는 없습니다.
int index = 0;
for(Element song : question) {
System.out.println("Current index is: " + (index++));
}
또는 일반 for 루프를 사용하십시오.
for(int i = 0; i < question.length; i++) {
System.out.println("Current index is: " + i);
}
그 이유는 압축 된 구문을 사용하여 Iterable 을 반복 할 수 있기 때문에 값에 실제로 "인덱스"가 있다고 보장되지는 않습니다
for (Song s: songList){
System.out.println(s + "," + songList.indexOf(s);
}
링크 된 목록에서 가능합니다.
노래 클래스에서 toString ()을 만들어야합니다. 그렇지 않으면 노래의 참조를 인쇄합니다.
아마 당신과는 관련이 없을 것입니다. ^ _ ^
Java에서는 foreach가 이터레이터를 숨기려고했기 때문에 할 수 없습니다. 현재 반복을 얻으려면 일반 For 루프를 수행해야합니다.
색인을 추적하십시오. 그것이 Java에서 수행되는 방식입니다.
int index = 0;
for (Element song: question){
// Do whatever
index++;
}
Java에서는 불가능합니다.
스칼라 방법은 다음과 같습니다.
val m = List(5, 4, 2, 89)
for((el, i) <- m.zipWithIndex)
println(el +" "+ i)
다른 사람들이 지적했듯이 '직접 불가능'. 송에 대한 일종의 색인 키를 원한다고 생각하십니까? Element에 다른 필드 (구성원 변수)를 작성하십시오. 노래를 모음에 추가 할 때 증가시킵니다.
현재 작업중 인 코드의 예 :
int index=-1;
for (Policy rule : rules)
{
index++;
// do stuff here
}
인덱스 0으로 깨끗하게 시작하고 처리 할 때 증가시킬 수 있습니다.
참고 : https://stackoverflow.com/questions/3431529/java-how-do-i-get-current-index-key-in-for-each-loop
반응형
'Programing' 카테고리의 다른 글
System.currentTimeMillis () vs. 새로운 Date () vs. Calendar.getInstance (). getTime () (0) | 2020.04.17 |
---|---|
실행 스크립트의 경로 결정 (0) | 2020.04.17 |
WebView의 Android 호출 JavaScript 함수 (0) | 2020.04.17 |
Oracle 데이터베이스에 부울 유형이 있습니까? (0) | 2020.04.17 |
생성자 인수와 함께 Class.newInstance ()를 사용할 수 있습니까? (0) | 2020.04.17 |