[Kotlin] array copyOf, clone
·
JVM/Kotlin
1차원 배열 복사 copyOf() 메소드를 사용하면 deep copy 가 된다. 새로운 레퍼런스 주소로 별도 공간에 array 가 할당된다. copyOf 로 deep copy 하면 복사된 배열의 값을 수정해도 원본 배열에는 영향을 미치지 않는다. 1차원 배열 복사 Test // 1차원 배열 copy @Test internal fun firstArray() { val nums = intArrayOf(1, 3, 5, 7, 9) val copiedArr = nums.copyOf() // copy 된 배열 값 수정 copiedArr[0] = 0 println("Original Array") for (num in nums) print("$num ") println() println("================..
[Javascript] Array.reduce
·
Web/Javascript
When to use 배열에서 특정 값에 대한 최종 합계를 구할 때 구문 array.reduce(callback, [intitialValue]) callback 각 배열 요소를 순회하며 실행할 함수 reduce( callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; Parameter Description previousValue 이전까지의 순회 값 currentValue 이번 항목의 값 currentIndex 이번 순회 회차 수 (Optional) array 순회 대상 배열 (Optional) accumulator 누산기, 콜백의 return value 누적. in..
[Kotlin] Array SumOf, minOf, maxOf
·
JVM/Kotlin
When to use? (클래스 단위) 배열 요소의 총합, 최대, 최소값을 구하려 할 때. Why? 이전까지는 For loop을 돌려서 총합을 구했음. selector 를 지정하여 간결하게 계산 가능. OrderItem.kt data class OrderItem(val itemName: String, var price : Int, var count : Int) { } main.kt (기존 방법) fun main(args: Array) { val orderArray = arrayOf(OrderItem("Cake", 15000, 3), OrderItem("Coffee", 1500, 10), OrderItem("Tea", 2000, 10)) var sum:Int = 0 for(i in orderArray) {..
[C++] std::array
·
C/C++
C style array int arr[size] = { 1, 2, 4, 6, 10} C++ 11 std::array = {1, 2, 4, 6, 10} 대체 std::array 얘 왜쓰냐고? C style쓰면 배열 사이즈를 sizeof(arr) / sizeof(int) 등 하드코딩해서 구해준 상태로 함수 호출시 넘겨줘야했음. std::array는 standard template을 따르기 때문에 Iterator, parameter as reference , algorithm container, range-based for loop 등이 적용 가능함. + parameter로 넘어갈 때 포인터로 자동 형변환 되지 않음. (보통 const reference로 받음) [Reference] http://www.cp..
[JavaScript] 배열 특정원소 삭제
·
Web/Javascript
1. Array 생성자 함수 Prototype에 Remove 메소드 정의 splice method 사용하여 정의한 Array.prototype.remove 메소드 맹점이 하나 있다. index 0 1 2 3 4 5 6 7 8 9 value 19 24 56 60 71 68 40 80 91 100 50이하의 원소는 삭제해야되는데 대체 왜 24는 살아남았는가? (19와 40은 정상적으로 삭제되었다.) remove가 일어날 때마다 배열이 재정렬 되기 때문이다. 즉 for loop 1번째 싸이클에서 19가 삭제되면 배열상태는 다음과같아진다. index 0 1 2 3 4 5 6 7 8 value 24 56 60 71 68 40 80 91 100 원래 index 1에 해당하던 원소 '24'가 index 0으로 당겨진..