자료구조를 정의하고 알고리즘을 동작하기 위한 클래스 라이브러리 및 함수형 라이브러리들의 모임 -> 배열도 일종의 컬렉션
add, remove, update 등의 함수를 사용하지 못함collection - list, set, map
list - 여러데이터를 원하는 순서로 넣어 관리
set - 순서상관없이
map - 순서없는 키-값의 데이터 집합(키 중복 불가)
Mutable붙이면 - 추가,삭제,변경 가능
사용하는 곳
특징
사용법
fun main(){
val a = listOf("가","나","다")
println(a) //[가,나,다]
for(i in a){
print("$i") //가나다
}
println()
val b = mutableListOf(6,3,1)
println(b) //[6, 3, 1]
b.add(4)
println(b) //[6, 3, 1, 4]
b.add(2, 8) //[2]에 8추가 나머지는 뒤로밀림
println(b) //[6, 3, 8, 1, 4]
b.removeAt(1) //[1]삭제
println(b) //[6, 8, 1, 4]
b.shuffle()
println(b)
b.sort() //오름차순정렬
println(b) //[1, 4, 6, 8]
b.reverse() //뒤집기
println(b) //[8, 6, 4, 1]
}
사용하는 곳
O(log n)이다.특징
사용법
사용하는 곳
특징
사용법
HashSet
ex 1)
override fun equals(other: Any?): Boolean {
return when(other){
is Person -> serialNumber == other.serialNumber
else -> false
}
}
override fun hashCode(): Int {
return serialNumber.hashCode()
}
val persons = HashSet<Person>()
//val persons = ArrayList<Person>()
with(persons){
add(Person("표인수","123456",37))
add(Person("이동수","123456",15))
add(Person("소진호","123456",21))
add(Person("표인수","123456",37))
add(Person("소진호","123456",21))
}
//출력 - {표인수, 123456, 37}
ex 2)
override fun equals(other: Any?): Boolean {
return when(other){
is Person -> serialNumber == other.serialNumber
else -> false
}
}
override fun hashCode(): Int {
return age.hashCode() //변경지점!!!!!!!
}
val persons = HashSet<Person>()
//val persons = ArrayList<Person>()
with(persons){
add(Person("표인수","123456",37))
add(Person("이동수","123456",15))
add(Person("소진호","123456",21))
add(Person("표인수","123456",37))
add(Person("소진호","123456",21))
}
/*출력
{표인수, 123456, 37}
{소진호, 123456, 21}
{이동수, 123456, 15}
*/