231214 TIL

2023. 12. 14. 19:41· 왕초보일지
목차
  1. Kotlin은 기본적으로 모든 타입의 값을 객체로 다룬다
  2. 배열
  3. 컬렉션
  4. 리스트
  5. 맵
  6. SET

Kotlin은 기본적으로 모든 타입의 값을 객체로 다룬다

->여러 타입의 값을 동시에 담을 수 있다. 

 

배열

var 이름 : Array<타입> = Array<타입>(크기){초기}  
var  이름 = arrayOf(값)                 ^ 생략가능

 

인덱스를 기반으로 값에 접근 가능, 검색 용이
여러 자료형의 값을 같이 넣을 수 있다.

 

 

초기화할 때부터 크기가 고정되어 있어
-설정된 크 이상으로 값을 추가할 수 없다.

-값을 삭제하더라도 크기가 줄어들지 않는다. -> 메모리 낭비

var array :Array<Int> = Array(4){15} // [15, 15, 15, 15] 크기가 4이고 초기값이 15

// arrayOf메소드를 호출
    var arr = arrayOf(1,2,3,4,5) // [1, 2, 3, 4, 5]
    var arr2 = arrayOf(3, "e",6) // [3, e, 6]
    var arr3 = emptyArray<Int>() // Int 타입의 빈 배열

// 배열요소를 모두 출력합니다
    println(Arrays.toString(arr))  //[1, 2, 3, 4, 5]
    println(arr.contentToString()) //[1, 2, 3, 4, 5]

// arr[0]은 하나의 변수로 취급할 수 있습니다
    println(arr[0]) //1

배열을 그대로 출력하면 객체 정보(해시코드)가 출력되기 때문에

Arrays.toString(배열) 또는 배열.contentToString()

메소드를 이용해서 출력한다.

 

컬렉션

리스트

불연속적인 메모리 공간 점유 -> 메모리 관리 용이

 

list

읽기 전용 불변형 리스트

 

mutablelist

수정 가능

 

arraylist

배열을 기반으로 하기 때문에 고유한 인덱스가 할당되어 있어 빠른 인덱스 기반 접근이 가능

 

// 읽기전용 리스트
// 값을 변경할 수 없습니다
    val scores1 = listOf(1, 2, 3) // [1, 2, 3]
    val scores11 = List(3){0} // 크기가 3이고 초기값이 0 [0, 0, 0]

// 수정가능 리스트
    var scores2 = mutableListOf(4, 5, 6) // [4, 5, 6]
    scores2[1]=66 // [4, 66, 6]
    scores2.add(0, 5) // [5, 4, 66, 6]
    scores2.remove(4) // remove(값) removeAt(인덱스)

// 수정가능 리스트
// array로 데이터들을 저장
// 저장할 데이터의 자료형을 < > 안에 지정해야 사용할 수 있어요
// 생성자를 통해 초기 용량을 지정
// 초기값을 바로 넣을 때는 arrayListOf<>() 메소드 사용
// 초기용량 이상으로 값을 추가할 수 있다
    var scores3 = ArrayList<Int>(1) // []
    var scores4 = arrayListOf<Int>(4, 5, 9, 6, 44) // [4, 5, 9, 6, 44]

    scores3.add(10) // [10] 값 추가
    scores3[0]=1 // [1]
    println(scores4.get(2)) // [9]
    scores4.remove(4) // [5, 9, 6, 44] 특정값 삭제

 

맵

키와 쌍으로 이루어진 자료형

키값으로 value 를 조회

 

map

읽기전용 불변형

 

mutableMap

수정 가능

    // 읽기전용
    // 변수명[키]로 데이터에 접근할 수 있습니다
    var scoreInfo1 = mapOf("kor" to 94, "math" to 90, "eng" to 92)
    println(scoreInfo1["kor"]) // 94

    // 수정가능 맵입니다
    // 변수명[키]로 데이터에 접근할 수 있습니다
    var scoreInfo2 = mutableMapOf("kor" to 94, "math" to 90)
    scoreInfo2["eng"] = 92 // key-value 추가 scoreInfo2.put("eng", 92)m
    println(scoreInfo2["eng"]) //92

    // 맵의 키와 값을 동시에 추출해서 사용할 수 있습니다
    for((k,v) in scoreInfo2) {
        println("${k}의 값은 ${v}입니다")
    }
    // kor의 값은 92입니다
    //math의 값은 90입니다
    //eng의 값은 92입니다

 

SET

중복 없이 데이터를 관리하는 집합 자료

요소가 존재하는지에 집중

//  읽기전용 Set
    var birdSet = setOf("닭", "참새", "비둘기")

//  수정가능 Set
    var mutableBirdSet = mutableSetOf("닭", "참새", "비둘기")
    mutableBirdSet.add("꿩")
    mutableBirdSet.remove("꿩")
    println("집합의 크기는 ${birdSet.size} 입니다")

    var findBird = readLine()!!

    if(birdSet.contains(findBird)) {
        println("${findBird} 종류는 존재합니다.")
    } else {
        println("${findBird}는 존재하지 않습니다.")
    }

 

집합

  • 합집합 .union()
  • 교집합 .intersect()
  • 차집합 .subtract()
    // 귀여운 새의 집합
    var birdSet = setOf("닭", "참새", "비둘기", "물오리")

    // 날수있는 새의 집합
    var flyBirdSet = setOf("참새", "비둘기", "까치")

    // 모든 새의 집합 (합집합) [닭, 참새, 비둘기, 물오리, 까치]
    var unionBirdSet = birdSet.union(flyBirdSet)

    // 귀엽고 날수있는 새의 집합 (교집합) [참새, 비둘기]
    var intersectBirdSet = birdSet.intersect(flyBirdSet)

    // 귀여운 새들중에서 날수없는 새의 조합 (차집합) [닭, 물오리]
    var subtractBirdSet = birdSet.subtract(flyBirdSet)

'왕초보일지' 카테고리의 다른 글

231218 TIL Spring 입문 1주차 강의  (1) 2023.12.18
231215 TIL  (1) 2023.12.15
231213 TIL 해시코드출력현상/싱글턴  (0) 2023.12.13
231212 TIL 스레드 참조  (0) 2023.12.12
계산기 해봐야 할 것  (1) 2023.12.11
  1. Kotlin은 기본적으로 모든 타입의 값을 객체로 다룬다
  2. 배열
  3. 컬렉션
  4. 리스트
  5. 맵
  6. SET
'왕초보일지' 카테고리의 다른 글
  • 231218 TIL Spring 입문 1주차 강의
  • 231215 TIL
  • 231213 TIL 해시코드출력현상/싱글턴
  • 231212 TIL 스레드 참조
다시은
다시은
🔥
다시은
재은로그
다시은
전체
오늘
어제
  • 분류 전체보기 (127)
    • 코딩테스트 (40)
    • Language (2)
      • JAVA (2)
      • Kotlin (0)
      • TypeScript (0)
    • SQL (1)
    • 인프라 (1)
    • 왕초보일지 (77)
    • 회고 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Kotlin
  • sql
  • SQL문법
  • 스프레드시트
  • 문자열변환
  • mysql
  • googleapis

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
다시은
231214 TIL
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.