스칼라 반복자
Scala 컬렉션
Scala Iterator는 컬렉션이 아니라 컬렉션에 액세스하는 방법입니다.
iterator it의 두 가지 기본 작업은 next와 hasNext입니다.
it.next()를 호출하면 반복자의 다음 요소가 반환되고 반복자의 상태가 업데이트됩니다.
은 it.hasNext()를 호출하여 컬렉션에 요소가 있는지 감지합니다.
반복자가 모든 요소를 하나씩 반환하도록 하는 가장 쉬운 방법은 while 루프를 사용하는 것입니다.
object Test { def main(args: Array[String]) { val it = Iterator("Baidu", "Google", "php", "Taobao") while (it.hasNext){ println(it.next()) } } }
위 코드를 실행하면 출력 결과는 다음과 같습니다.
$ scalac Test.scala $ scala Test Baidu Google php Taobao
최대값 찾기 최소 요소
를 사용하면 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("最大元素是:" + ita.max ) println("最小元素是:" + itb.min ) } }
위 코드를 실행하면 출력 결과는 다음과 같습니다.
$ scalac Test.scala $ scala Test 最大元素是: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 일반 메서드
다음 표에는 일반적으로 사용되는 메서드가 나열되어 있습니다. Scala Iterator의 메소드:
일련 번호 | 메소드 및 설명 |
---|---|
1 | def hasNext: Boolean 반환 가능한 요소가 있으면 true를 반환합니다. |
2 | def next(): A 는 반복자의 다음 요소를 반환합니다. , 그리고 반복기 |
3 | def ++(that: => Iterator[A])의 상태를 업데이트합니다. : 반복자[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 contain(elem: Any): Boolean 반복자 감지 지정된 요소가 포함되어 있는지 여부 |
9 | def copyToArray(xs: Array[A], start: Int, len: Int ): 단위 은 반복자에서 선택한 값을 배열 |
10 | def count(p: (A) => Boolean): Int 조건 p를 만족하는 반복자 요소의 총 요소 수를 반환합니다. |
11 | def drop(n: Int): Iterator[A] return 새 세트의 처음 n개 요소를 삭제합니다 |
12 | def dropWhile(p: (A) => Boolean): Iterator[A] 조건 p가 참이 아닐 때까지 왼쪽에서 오른쪽으로 요소 삭제 |
13 | def 중복: (Iterator[A] , Iterator[A]) 반복자의 모든 요소를 각각 반환할 수 있는 두 개의 반복자를 생성합니다. |
14 | def 존재(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 그것이 가리키는 요소가 p를 만족하는지 여부를 나타내는 부울 값을 반환합니다. |
20 | def foreach(f: (A) => 단위): 단위 지정된 프로그램 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 비어 있는지 확인하고 비어 있으면 반환합니다. 비어 있으면 true이고, 그렇지 않으면 false입니다(hasNext의 반대). |
25 | def isTraversableAgain: Boolean 이 Iterator를 반복적으로 탐색할 수 있는지 테스트합니다. |
26 | def length: Int 반복자 요소의 수를 반환합니다. |
27 | def map[B](f: (A) => B): Iterator[B] 각 요소를 함수 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] 먼저 반복자의 모든 요소를 반환하고 길이가 len에 도달할 때까지 요소를 추가하고 복사합니다. |
34 | def patch(from: Int, patchElems: Iterator[B], replacement: Int): Iterator[B ] from 요소에서 시작하여 대체된 요소가 반복자가 가리키는 요소로 대체되는 새 반복자를 반환합니다. |
35 | def product: A iterator product에 의해 인덱스된 숫자 요소를 반환합니다. . |
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] 모든 반복자가 The를 가리킵니다. 요소는 배열에 배치되고 반환됩니다. |
43 | def toBuffer: Buffer[B] 모든 반복자는 Elements를 가리킵니다. 버퍼 Buffer에 복사됩니다. |
44 | def toIterable: Iterable[A] 모든 요소를 포함하는 Iterable을 반환합니다. 이는 무한 반복자에 대해 종료되지 않습니다. |
45 | def toIterator: Iterator [A] 🎜 > 반복자의 모든 요소를 Iterator 컨테이너에 넣고 반환합니다. |
def toList: List[A] 반복자의 모든 요소를 넣습니다. 목록으로 정렬하고 | |
을 반환합니다. def toMap[T, U]: Map[T, U] 반복자의 키-값 쌍을 모두 Map으로 모아서 반환합니다. | |
def toSeq: Seq[A] 생성기의 모든 요소를 Seq 컨테이너에 넣고 반환합니다. | |
49 | def toString(): String 반복자를 문자열로 변환 |
50 | def zip[B](that: Iterator[B]): Iterator[(A, B) 반복기와 |
Scala 컬렉션