Android App Track⛺-011

MunkiJeon·2024년 6월 20일

TIL

목록 보기
28/59
post-thumbnail

TIL (Today I Learned)

오늘 공부한거!

  • Kotlin 4강 - 객체지향 프로그래밍의 심화
    1. 배열
    • 하나의 변수에 여러 개의 값을 저장할 수 있는 대표적인 자료형입니다.
    • 배열은 저장될 수 있는 값의 개수를 먼저 정해놓고 사용해야 하며
      중간에 개수를 추가하거나 제거할 수 없음.
      //기본 생성자
      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
      */
    1. 컬렉션
      크게 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() // 전체 다 지움
      ----------------------------------------------------
    1. 단일 표현식 함수 (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

Today Review

  • 임시저장 후 밀려 있던 내용이라 생략
profile
공장자동화와 웹 개발을 핥아 먹다 앱 개발로 전향한 개발자의 키보드의 낡은 키캡⛑️

0개의 댓글