- 배열
- 하나의 변수에 여러 개의 값을 저장할 수 있는 대표적인 자료형입니다.
- 배열은 저장될 수 있는 값의 개수를 먼저 정해놓고 사용해야 하며
중간에 개수를 추가하거나 제거할 수 없음.//기본 생성자 arrayOf(값들) //특정 타입을 지정안했으면 섞어도 OK, 권장하지 않음. //특정 타입 지정 intArrayOf(7, 10, 27, 36,) //int형 doubleArrayOf(12.34, 42.21)// double 타입 arrayOf<Boolean>(true, true //Boolean 타입) arrayOf<String>("Hello", "Kotling")//String 타입 //배열 관련 매소드 var arr = arrayOf(0,1,2,3,4,5) arr.first() // 첫번째 녀석 = 0 arr.last() // 마지막 녀석 = 5 arr.indexOf(인덱스) // 인덱스 위치의 녀석 arr.count() // 요소 게수 arr.sum() // 요소 다 더하기 arr.contains(요소) //요소가 포함되어 있는지 여부 reversedArray // 다차원 배열 // 2차원 배열 예시 arrayOf(arrayOf(1,2,3), arrayOf(4,5,6),arrayOf(7,8,9)) /* 1 2 3 4 5 6 7 8 9 */
- 컬렉션
크게list,set,map이 있고,
값이 변경가능한mutable과 변경 불가능한immutable가 있다.
>mutable을 붙이지 않으면 기본적으로immutable이다
- List : 요소값 중복 허용 = 출석부
//immutable = 추가 수정 삭제 함수 없음 val fruits= listOf<String>("apple", "banana", "kiwi", "peach") // val fruits= listOf("apple", "banana", "kiwi", "peach") -> 타입 생략 가능 println("fruits.size: ${fruits.size}") //fruits의 크기 / 갖고 있는 요소수 = 4 println("fruits.get(2): ${fruits.get(2)}")//fruits의 2번째 요소값 =kiwi println("fruits[3]: ${fruits[3]}") //fruits의 3번째 요소값 //인덱스가 0번 부터 시작 하기에 2번이 kiwi, 3번째가 peach println("fruits.indexOf(\"peach\"): ${fruits.indexOf("peach")}") //fruits 요소 중 peach 의 인덱스 값 -------------------------------------------------------------------- //mutable = 추가 수정 삭제 함수 가능 val fruits= mutableListOf<String>("apple", "banana", "kiwi", "peach") fruits.remove("apple") // fruits 에서 apple 를 삭제 fruits.add("grape") // fruits 에 grape 추가 fruits.addAll(listOf("melon", "cherry"))//fruits 에 "melon", "cherry" 추가 fruits.removeAt(3) //fruits의 모든 요소 삭제 // * 그 외에도 replace, replaceAll, contains, forEach 등의 메소드도 지원- Set : 요소값 중복 미허용 = 달력/랭킹
//immutable = 추가 수정 삭제 함수 없음 val numbers = setOf<Int>(33, 22, 11, 1, 22, 3) println(numbers) //numbers 내부 출력 println("numbers.size: ${numbers.size}") // numbers의 요소들의 개수 println("numbers.contains(1): ${numbers.contains(1)}") //numbers안에 1의 존재 유무 println("numbers.isEmpty(): ${numbers.isEmpty()}") //numbers가 비었는지 //mutable = 추가 수정 삭제 함수 가능 val numbers = mutableSetOf<Int>(33, 22, 11, 1, 22, 3) numbers.add(100) // 100을 추가 numbers.remove(33) // 33번 값을 가진 요소 삭제 numbers.removeIf({ it < 10 }) // 10 이하의 숫자를 삭제- Map : 요소값 중복 미허용 = 달력/랭킹
//immutable = 추가 수정 삭제 함수 없음 val numbersMap = mapOf<String, String>("1" to "one", "2" to "two", "3" to "three") println("numbersMap.get(\"1\"): ${numbersMap.get("1")}")//1번 값 가져옴 println("numbersMap[\"1\"]: ${numbersMap["1"]}") // 1번 값 가져옴 println("numbersMap[\"1\"]: ${numbersMap.values}")// 요소들의 값 println("numbersMap keys:${numbersMap.keys}")// 요소들의 키들 println("numbersMap values:${numbersMap.values}")// 요소들의 값들 //mutable = 추가 수정 삭제 함수 가능 val numbersMap = mutableMapOf<String, String>("1" to "one", "2" to "two", "3" to "three") val numbersMap = mutableMapOf<String, String>( "1" to "one", "2" to "two", "3" to "three") numbersMap.put("4", "four") numbersMap["5"] = "five" //5와 "five" 를 키값과 받음 numbersMap.remove("1") //1번째 녀석 지움 numbersMap.clear() // 전체 다 지움 ----------------------------------------------------
- 단일 표현식 함수 (Single-expression function)
코틀린은 단일 표현식 함수라는 기능을 통해 함수의 정의를 축약할 수 있다. 만일 함수가 하나의 표현식 (Expression)만으로 구성되어 있다면, 중괄호로 Block을 감싸는 대신 = 을 사용하여 함수를 정의할 수 있다.//일반적인 함수 fun sum(a: Int, b: Int): Int{ return a + b } //단일 표현식 함수 fun sum(a: Int, b: Int): Int = a + b fun sum(a: Int, b: Int) = a + b
- 임시저장 후 밀려 있던 내용이라 생략