스칼라 반복자


up.gif Scala 컬렉션

Scala Iterator는 컬렉션이 아니라 컬렉션에 액세스하는 방법입니다.

iterator it의 두 가지 기본 작업은 nexthasNext입니다.

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.minit.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의 메소드:

464748
일련 번호메소드 및 설명
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)

반복기와

<🎜 요소를 포함하는 지정된 반복기와 일대일 대응으로 구성된 일련의 튜플을 가리키는 새 반복기를 반환합니다. >더 많은 메소드는 API 문서를 참고하세요

Scala 컬렉션up.gif