[SCALA] 스칼라리스트의 말미에 부가 된 요소
SCALA스칼라리스트의 말미에 부가 된 요소
그것은 바보 같은 질문처럼 들리지만, 인터넷에있는 모든 나는 쓰레기였다. 나는 단순히 목록 목록 [T]로 형 T의 요소를 추가 할 수 없습니다. 나는 myList에 :: = myElement으로 시도했지만 이상한 개체를 만들고 myList.last에 접근 항상 목록 안에 넣어 첫 번째 요소를 반환 보인다.
해결법
-
==============================
1.
List(1,2,3) :+ 4 Results in List[Int] = List(1, 2, 3, 4)
참고이 동작은 O (N)의 복잡도를 가지고있다. 자주이 작업을해야하는 경우, 또는 긴 목록을 위해, (예를 들어, ListBuffer) 다른 데이터 형식을 사용하는 것이 좋습니다.
-
==============================
2.즉, 당신은 (적어도 불변의 목록)을하지 말아야의 때문이다. 당신이 정말 정말 데이터 구조의 끝과이 데이터 구조 정말 목록을 할 필요가이 목록에 요소를 추가해야 할 경우 정말 정말이 불변 다음이를 eiher 할 수합니다 :
즉, 당신은 (적어도 불변의 목록)을하지 말아야의 때문이다. 당신이 정말 정말 데이터 구조의 끝과이 데이터 구조 정말 목록을 할 필요가이 목록에 요소를 추가해야 할 경우 정말 정말이 불변 다음이를 eiher 할 수합니다 :
(4 :: List(1,2,3).reverse).reverse
또는:
List(1,2,3) ::: List(4)
-
==============================
3.스칼라의 목록을 수정할 수 있도록 설계되어 있지 않습니다. 사실, 당신은 스칼라 목록에 요소를 추가 할 수 없습니다; 그것은 자바 문자열과 같은 불변의 데이터 구조입니다. 당신은 스칼라에서 "목록에 요소를 추가 할 때"당신이 실제로 무엇을 기존 목록에서 새 목록을 만드는 것입니다. (출처)
스칼라의 목록을 수정할 수 있도록 설계되어 있지 않습니다. 사실, 당신은 스칼라 목록에 요소를 추가 할 수 없습니다; 그것은 자바 문자열과 같은 불변의 데이터 구조입니다. 당신은 스칼라에서 "목록에 요소를 추가 할 때"당신이 실제로 무엇을 기존 목록에서 새 목록을 만드는 것입니다. (출처)
대신 같은 사용 사례에 대한 목록을 사용하여, 나는 중 하나를 사용 ArrayBuffer 또는 ListBuffer에 좋습니다. 이러한 데이터 구조체가 추가 된 새로운 요소를 가질 수 있도록 설계되었습니다.
모든 작업을 완료 한 후 마지막으로, 버퍼는리스트로 변환 할 수 있습니다. 다음 REPL의 예를 참조하십시오 :
scala> import scala.collection.mutable.ListBuffer import scala.collection.mutable.ListBuffer scala> var fruits = new ListBuffer[String]() fruits: scala.collection.mutable.ListBuffer[String] = ListBuffer() scala> fruits += "Apple" res0: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple) scala> fruits += "Banana" res1: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple, Banana) scala> fruits += "Orange" res2: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple, Banana, Orange) scala> val fruitsList = fruits.toList fruitsList: List[String] = List(Apple, Banana, Orange)
-
==============================
4.이 답변 중 하나지만 다른 방법으로 유사하다 :
이 답변 중 하나지만 다른 방법으로 유사하다 :
scala> val x=List(1,2,3) x: List[Int] = List(1, 2, 3) scala> val y=x:::4::Nil y: List[Int] = List(1, 2, 3, 4)
-
==============================
5.우리는 추가 또는 두 개의 목록 또는 목록 및 배열을 붙일 수 있습니다 추가합니다
우리는 추가 또는 두 개의 목록 또는 목록 및 배열을 붙일 수 있습니다 추가합니다
var l = List(1,2,3) l=l:+4 Result : 1 2 3 4 var ar = Array(4,5,6) for(x<-ar) { l=l:+x} l.foreach(println) Result:1 2 3 4 5 6
붙이는 :
var l = List[Int]() for(x<-ar) { l=x::l } //prepending l.foreach(println) Result:6 5 4 1 2 3
from https://stackoverflow.com/questions/7794063/appending-an-element-to-the-end-of-a-list-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 어떻게 RDD의 내용을 인쇄하려면? (0) | 2019.11.14 |
---|---|
[SCALA] 어떻게 스칼라를 사용하여 아파치 스파크에 PostgreSQL 데이터베이스에 연결할 수 있습니까? (0) | 2019.11.14 |
[SCALA] 스칼라 함수를 정의의이 세 가지 방법의 차이 (0) | 2019.11.14 |
[SCALA] 포스트 그레스 표에 Dataframes UPSERT 불꽃 (0) | 2019.11.14 |
[SCALA] 스칼라 파일에서 jar 파일 만들기 (0) | 2019.11.14 |