230803 TIL

장재용·2023년 8월 7일

TIL

목록 보기
12/32

1. List

변경 가능한 MutableList와 읽기만 가능한 ImmutableList가 있다.

1.1 MutableList

Read & Write 방식

추가

list.add(" ") 로 추가한다.

list.add("HI")
list.add("THANK YOU")
list.add("BYE")

addAll을 이용해 다른 리스트의 값도 추가 가능하다

list.addAll(list2) 
list.addAll(2, list2)

삭제

list.removeAt(index) 로 삭제한다.
index는 0부터 시작한다.

var list : MutableList<String> = mutableListOf()

list.removeAt(0)
list.removeAt(1)

removeAll로 다른 리스트와 일치하는 것을 모두 삭제 가능하다

list.removeAll(list2)

수정

아래와 같이 2가지 방법으로 수정 가능하다

list[0] = "HI"
list.set(1, "BYE")

중복 제거

distinct를 사용해 리스트 내 중복된 데이터를 삭제해준다.

val distinctList = list.distinct()

distinct()는 toMutableSet().toList()와 같다
즉 내부적으로 set으로 만들어 중복된걸 없애주고 리스트로 바꿔주는 것이다.

iterator

iterator는 리스트의 첫 번째 원소를 반환해준다.

val firstList = list.iterator()

hasNext()

hasNext()는 iterator가 가르킬 다음 원소가 존재하는지 boolean 정보를 반환한다

while(firstList.hasNext()){
	println(firstList.next())
    }

정렬

sort( ) 사용

val list = mutableListOf(10, 100, 50, 2, 77, 4)

    list.sort()

역순으로 정렬

reverse( ) 사용

val list2= mutableListOf(10, 100, 50, 2, 77, 4)
    list2.sort()
    list2.reverse()

1.2 ImmutableList

Read Only 방식

정렬

sorted( ) 사용

val list = listOf(10, 100, 50, 2, 77, 4)

    val sorted = list.sorted()

역순으로 정렬

reversed( ) 사용

 val list = listOf(10, 100, 50, 2, 77, 4)
 
    val sorted = list.sorted().reversed()

1.3 List를 String으로 바꾸기

val answer = list.joinToString("")

1.4 List를 Array로 바꾸기

val list: List<String> = listOf("a", "b", "c", "d", "e")

val array: Array<String> = list.toTypedArray()

2. Map

Map은 Key와 Value를 쌍으로 저장하는 자료구조다.
Key는 중복이 불가하다
Value는 중복이 가능하다.
Key를 통해 Value에 접근할 수 있다 역도 가능하다.

2.3 Map을 String으로 바꾸기

val answer = map.keys.joinToString("")

Array를 String으로 바꾸기

val intArrayString = String(intArray)
val doubleArrayString = String(doubleArray)
val stringArrayString = String(stringArray)
stringArray.contentToString()   

String(배열)
배열.contentToString()
두 가지 중 아래가 더 바람직하다고 한다.

intArray를 stringArray로 바꾸기

val intArray = intArrayOf(1,2,3,4,5)
val stringArray = intArray.map { it.toString() }.toTypedArray()

여기서 문자열로 바꿀 수도 있는데 아래와 같이 쓰면 된다.
stringArray.contentToString()  

3.1 알파벳 when 절에서의 표현

when(charArray[i]){
	in 'a' .. 'z' -> charArray[i] = charArray[i].uppercaseChar()
    in 'A' .. 'Z' -> charArray[i] = charArray[i].lowercaseChar()
    }

4.1 StringBuilder

StringBuilder는 코틀린에서 동적으로 문자열을 조작할 수 있는 객체다.
append("문자열") : 인덱스 맨 끝에 문자열 추가
insert(인덱스, "문자열") : 지정한 인덱스에 문자열 삽입
delete(인덱스, 로부터 삭제하고픈 인덱스 크기) : 인덱스 부터 설정한 인덱스 전까지 문자열 삭제

val stringBuilder = StringBuilder()
stringBuilder.append("hi")
stringBuilder.insert(1," bye")
stringBuilder.delete(0,2)
profile
enjoy_error_message!

0개의 댓글