- Set - 주머니에 숫자를 넣어놓듯이 중복된 데이터는 없고, 순서도 존재하지 않음.
- list - 데이터가 저장되거나 삭제될때, 배열과 같이 순서를 지킴.
- Map - Key, value 타입의 형식을 가지고 있다. 주소값에 해당하는 key와 해당 key에 저장된 데이터를 value라고 볼 수 있다. key 값의 중복은 허용하지 않는다.
예를 들어,
val numberSet = setOf("one", "two", "three", "four")
val emptySet = mutableSetOf<String>"
그 외에도 Collections에서 제공하는 많은 함수가 있는데 공식 홈페이지에서 확인이 가능하다.
kotlinlang.org로 접속하면 된다.
fun Random(seed: Int): Random
Random에 seed값을 넣어주면 다시 실행시켜도 같은 값이 나온다. nextInt에 값이 주어지면 0~N-1까지 숫자가 랜덤하게 나오므로 +1을 하면 1~ N까지의 범위로 설정할 수 있다.
import java.util.*
fun main() {
val random = Random()
val list = mutableListOf<Int>()
for(i in 1..6) {
println("${random.nextInt(45) + 1}")
}
}
import java.util.*
fun main() {
val random = Random()
val list = mutableListOf<Int>()
while(list.size < 6){
val randomNumber = random.nextInt(45) + 1
if(list.contains(randomNumber)){
continue
}
list.add(randomNumber)
}
println(list)
}
import java.util.*
fun main() {
val random = Random()
val numberSet = mutableSetOf<Int>()
while(numberSet.size < 6){
val randomNumber = random.nextInt(45) + 1
numberSet.add(randomNumber)
}
println(numberSet)
}
그래서 이 중에서 이번 프로젝트에 사용할 방법은 아래와 같다.
여기에서 사용하는 expression인 apply는 적용하는 객체를 모두 가져오기때문에 편리하다. 그래서 초기화할때 사용할 예정이다.
import java.util.*
fun main() {
val random = Random()
val list = mutableListOf<Int>().apply {
for(i in 1..45){
this.add(i)
}
}
list.shuffle()
println(list.subList(0, 6))
}
이 식에서 처음 사용한 기능을 보자.
- apply함수 -> 그 값자체로 초기화하는 식을 만들 수 있음.
- shuffle -> 랜덤하게 섞음.
- subList(from, to) -> from <= N < to의 범위의 값을 받아옴.
이 방법을 활용해 앱을 만들어보겠다!