English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala Iterator(이터랙터)는 집합이 아니라, 집합에 접근하는 방법입니다.
이터랙터 it의 두 가지 기본 작업은 next 와 hasNext。
호출 it.next() 이터랙터의 다음 요소를 반환하고 이터랙터 상태를 업데이트합니다.
호출 it.hasNext() 집합에 더 이상 요소가 있는지 확인하는 데 사용됩니다.
이터랙터 it가 모든 요소를 차례대로 반환하는 가장 간단한 방법은 while 루프를 사용하는 것입니다:
object Test { def main(args: Array[String]) { val it = Iterator("Baidu", "Google", "w3codebox", "Taobao") while(it.hasNext){ println(it.next()) } } }
위 코드를 실행하면 다음과 같은 출력 결과가 나타납니다:
$ scalac Test.scala $ scala Test Baidu Google w3codebox 타obao
이터레이터의 길이를 얻을 수 있습니다. it.min 와 it.max 이터랙터에서 최대와 최소 요소를 찾는 방법을 설명하겠습니다.
object Test { def main(args: Array[String]) { val ita = Iterator(20,40,2,50,69, 90) val itb = Iterator(20,40,2,50,69, 90) println("最大元素是:" + println("최대 요소는:" ita.max) + println("최소 요소는:" } }
위 코드를 실행하면 다음과 같은 출력 결과가 나타납니다:
$ scalac Test.scala $ scala Test itb.min)90 최대 요소는:2
이터레이터의 길이를 얻을 수 있습니다. it.size 또는 it.length 이터레이터에 있는 요소의 개수를 확인하는 메서드를 보여줍니다. 예제는 다음과 같습니다:
object Test { def main(args: Array[String]) { val ita = Iterator(20,40,2,50,69, 90) val itb = Iterator(20,40,2,50,69, 90) println("ita.size의 값: " + ita.size) println("itb.length의 값: " + itb.length) } }
위 코드를 실행하면 다음과 같은 출력 결과가 나타납니다:
$ scalac Test.scala $ scala Test ita.size의 값: 6 itb.length의 값: 6
아래 표는 Scala Iterator의 일반적인 메서드를 나열합니다:
순번 | 메서드 및 설명 |
---|---|
1 | def hasNext: Boolean 또 다른 반환할 요소가 있으면 true를 반환 |
2 | def next(): A 이터레이터의 다음 요소를 반환하고 이터레이터 상태를 업데이트 |
3 | def ++(that: => Iterator[A]): Iterator[A] 두 이터레이터를 병합 |
4 | def ++[B >: A](that :=> GenTraversableOnce[B]): Iterator[B] 두 이터레이터를 병합 |
5 | def addString(b: StringBuilder): StringBuilder StringBuilder b에 문자열을 추가 |
6 | def addString(b: StringBuilder, sep: String): StringBuilder StringBuilder b에 문자열을 추가하고 구분자를 지정 |
7 | def buffered: BufferedIterator[A] 이터레이터를 BufferedIterator로 변환 |
8 | def contains(elem: Any): Boolean 검사 이터레이터가 지정된 요소를 포함하고 있는지 |
9 | def copyToArray(xs: Array[A], start: Int, len: Int): Unit 반복자에서 선택한 값을 배열에 전달합니다. |
10 | def count(p: (A) => Boolean): Int 조건 p를 만족하는 요소의 총 수를 반환합니다. |
11 | def drop(n: Int): Iterator[A] 버리기 전 n개 요소를 포함한 새로운 집합을 반환합니다. |
12 | def dropWhile(p: (A) => Boolean): Iterator[A] 조건 p가 더 이상 성립하지 않을 때까지 왼쪽에서 오른쪽으로 요소를 버립니다. |
13 | def duplicate: (Iterator[A], Iterator[A]) 반복자의 모든 요소를 각각 독립적으로 반환할 수 있는 두 반복자를 생성합니다. |
14 | def exists(p: (A) => Boolean): Boolean 반복자 요소 중 p를 만족하는 요소가 있는지 여부를 나타내는 부울 값을 반환합니다. |
15 | def filter(p: (A) => Boolean): Iterator[A] 조건 p를 만족하는 모든 요소를 가리키는 새 반복자를 반환합니다. |
16 | def filterNot(p: (A) => Boolean): Iterator[A] 조건 p를 만족하지 않는 요소를 가리키는 반복자를 반환합니다. |
17 | def find(p: (A) => Boolean): Option[A] p를 만족하는 첫 번째 요소를 반환하거나 None. 주의: 조건을 만족하는 요소를 찾으면 반복자는 이 요소 뒤로 이동합니다; 찾지 못하면 끝에 이동합니다. |
18 | def flatMap[B](f: (A) => GenTraversableOnce[B]): Iterator[B] 반복자의 시퀀스의 각 요소에 함수 f를 적용하고, 결과 시퀀스를 가리키는 반복자를 반환합니다. |
19 | def forall(p: (A) => Boolean): Boolean it이 가리키는 요소가 모두 p를 만족하는지 여부를 나타내는 부울 값을 반환합니다. |
20 | def foreach(f: (A) => Unit): Unit 반복자가 반환하는 각 요소에 대해 지정된 프로그램 f를 실행합니다. |
21 | def hasDefiniteSize: Boolean 반복자의 요소 개수가 제한적이면 true를 반환합니다. 기본적으로 isEmpty와 동일합니다. |
22 | def indexOf(elem: B): Int 반복자의 요소 중 인덱스가 x와 같은 첫 번째 요소를 반환합니다. 주의: 반복자는 이 요소를 건너뜁니다. |
23 | def indexWhere(p: (A) => Boolean): Int 반복자의 요소 중 인덱스가 조건 p를 만족하는 요소를 반환합니다. 주의: 반복자는 이 요소를 건너뜁니다. |
24 | def isEmpty: Boolean it가 비어 있는지 확인합니다, 비어 있다면 true를 반환하고, 그렇지 않으면 false를 반환합니다(相当于hasNext) |
25 | def isTraversableAgain: Boolean 이 Iterator가 반복적으로 탐색될 수 있는지 테스트합니다 |
26 | def length: Int 반복자 요소의 수를 반환합니다 |
27 | def map[B](f: (A) => B): Iterator[B] it의 각 요소를 함수 f에 전달한 후 결과를 새로운 반복자로 생성합니다 |
28 | def max: A 반복자의 요소 중 가장 큰 요소를 반환합니다 |
29 | def min: A 반복자의 요소 중 가장 작은 요소를 반환합니다 |
30 | def mkString: String 반복자의 모든 요소를 문자열로 변환합니다 |
31 | def mkString(sep: String): String 반복자의 모든 요소를 문자열로 변환하고 구분자를 지정합니다 |
32 | def nonEmpty: Boolean 컨테이너에 요소가 포함되어 있는지 확인합니다(相当于 hasNext) |
33 | def padTo(len: Int, elem: A): Iterator[A] 먼저 반복자의 모든 요소를 반환한 후 elem을 추가하여 길이가 len에 도달할 때까지 패딩합니다 |
34 | def patch(from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B] from 번째 요소에서 시작하여 replaced 개의 요소가 반복자의 요소로 대체되는 새로운 반복자를 반환합니다 |
35 | def product: A 반복자가 지시하는 수치형 요소의 곱을 반환합니다 |
36 | def sameElements(that: Iterator[_]): Boolean 반복자와 지정된 반복자 파라미터가 차례대로 같은 요소를 반환하는지�断합니다 |
37 | def seq: Iterator[A] 집합의 시리즈 뷰를 반환합니다 |
38 | def size: Int 반복자의 요소 수를 반환합니다 |
39 | def slice(from: Int, until: Int): Iterator[A] 반복자가 가리키는 시퀀스에서 시작하는 from 번째 요소부터 until 번째 요소까지의 부분을 가리키는 새로운 반복자를 반환합니다 |
40 | def sum: A 반복자가 지시하는 수치형 요소의 합을 반환합니다 |
41 | def take(n: Int): Iterator[A] n 개의 요소를 반환하는 새로운 이터레이터를 반환합니다。 |
42 | def toArray: Array[A] 이터레이터가 가리키는 모든 요소를 배열에 넣고 반환합니다。 |
43 | def toBuffer: Buffer[B] 이터레이터가 가리키는 모든 요소를 버퍼 Buffer에 복사합니다。 |
44 | def toIterable: Iterable[A] 이 트래버서블이나 이터레이터의 모든 요소를 포함하는 Iterable을 반환합니다. 무한 이터레이터의 경우 종료하지 않습니다. |
45 | def toIterator: Iterator[A] 이터레이터의 모든 요소를 이터레이터 컨테이너에 넣고 반환합니다。 |
46 | def toList: List[A] 이터레이터의 모든 요소를 목록에 넣고 반환합니다 |
47 | def toMap[T, U]: Map[T, U] 이터레이터의 모든 키밸류를 Map에 넣고 반환합니다。 |
48 | def toSeq: Seq[A] 이터레이터의 모든 요소를 Seq 컨테이너에 넣고 반환합니다。 |
49 | def toString(): String 이터레이터를 문자열로 변환합니다 |
50 | def zip[B](that: Iterator[B]): Iterator[(A, B) 이터레이터와 지정된 이터레이터 that 요소가 일일对应된 이진 튜플 시퀀스를 가리키는 새로운 이터레이터를 반환합니다 |
더 많은 메서드는 참조할 수 있습니다 API 문서