programing

코틀린에서 값으로 배열을 초기화하는 방법은 무엇입니까?

powerit 2023. 5. 8. 22:26
반응형

코틀린에서 값으로 배열을 초기화하는 방법은 무엇입니까?

Java에서는 다음과 같은 배열을 초기화할 수 있습니다.

int numbers[] = new int[] {10, 20, 30, 40, 50}

Kotlin의 배열 초기화는 어떻게 보입니까?

val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)

자세한 내용은 Kotlin - 기본 유형을 참조하십시오.

두 번째 파라미터로 이니셜라이저 기능을 제공할 수도 있습니다.

val numbers = IntArray(5) { 10 * (it + 1) }
// [10, 20, 30, 40, 50]

builtines( 코틀빌을사인때예용언가있급습다니치가할트할린예(있▁(다▁worth:니습ines▁kot▁whenlin▁using)를 사용할 때 할 가치가 있습니다.intArrayOf(),longArrayOf(),arrayOf()등) 지정된 크기에 대해 기본값(또는 원하는 값에 대한 모든 값)으로 배열을 초기화할 수 없습니다. 대신 클래스 생성자에 따라 호출을 통해 초기화해야 합니다.

// Array of integers of a size of N
val arr = IntArray(N)

// Array of integers of a size of N initialized with a default value of 2
val arr = IntArray(N) { i -> 2 }

코틀린에는 몇 가지 방법이 있습니다.

var arr = IntArray(size) // construct with only size

그런 다음 사용자, 다른 컬렉션 또는 원하는 곳에서 초기 값을 얻을 수 있습니다.

var arr = IntArray(size){0}  // construct with size and fill array with 0
var arr = IntArray(size){it} // construct with size and fill with its index

또한 다음과 같은 내장 기능을 사용하여 어레이를 만들 수 있습니다.

var arr = intArrayOf(1, 2, 3, 4, 5) // create an array with 5 values

다른 방법

var arr = Array(size){0} // it will create an integer array
var arr = Array<String>(size){"$it"} // this will create array with "0", "1", "2" and so on.

사용할 수도 있습니다.doubleArrayOf()또는DoubleArray()또는 Int 대신 다른 원시 유형.

다음은 예입니다.

fun main(args: Array<String>) {
    val arr = arrayOf(1, 2, 3);
    for (item in arr) {
        println(item);
    }
}

또한 놀이터를 사용하여 언어 기능을 테스트할 수 있습니다.

는 Kotlin 우리서사배용열만수있습다니들을여하에는음을 사용하여 배열을 수 .arrayOf(),intArrayOf(),charArrayOf(),booleanArrayOf(),longArrayOf()기능들.

예:

var Arr1 = arrayOf(1,10,4,6,15)  
var Arr2 = arrayOf<Int>(1,10,4,6,15)  
var Arr3 = arrayOf<String>("Surat","Mumbai","Rajkot")  
var Arr4 = arrayOf(1,10,4, "Ajay","Prakesh")  
var Arr5: IntArray = intArrayOf(5,10,15,20)  

오래된 질문이지만 범위를 사용하려는 경우:

var numbers: IntArray = IntRange(10, 50).step(10).toList().toIntArray()

결과는 다음과 거의 같습니다.

var numbers = Array(5, { i -> i*10 + 10 })

결과: 10, 20, 30, 40, 50

저는 첫 번째 옵션이 조금 더 읽기 쉽다고 생각합니다.둘 다 됩니다.

코틀린은 복싱 오버헤드 없이 원시 유형의 배열을 나타내는 특수 클래스를 가지고 있습니다.들어 – 예를들어 –IntArray,ShortArray,ByteArray등. 이 클래스들은 부모와 상속 관계가 없다고 말할 필요가 있습니다.Array클래스입니다. 그러나 메서드 및 속성 집합은 동일합니다.각각의 제품에는 해당 공장 기능도 있습니다.따라서 Kotlin에서 값을 사용하여 배열을 초기화하려면 다음과 같이 입력하면 됩니다.

val myArr: IntArray = intArrayOf(10, 20, 30, 40, 50)

...또는 이 방법:

val myArr = Array<Int>(5, { i -> ((i + 1) * 10) })

myArr.forEach { println(it) }                            // 10, 20, 30, 40, 50

이제 사용할 수 있습니다.

myArr[0] = (myArr[1] + myArr[2]) - myArr[3]

이 방법을 사용할 수 있습니다.

var numbers=Array<Int>(size,init)
var numbers=IntArray(size,init)
var numbers= intArrayOf(1,2,3)

var numbers = Array<Int>(5, { i -> 0 })

init는 기본값을 나타냅니다(initialize ).

설명서에서 언급할 가치가 있고 직관적이지 않은 한 가지는 공장 기능을 사용하여 배열을 만들고 크기를 지정하면 배열이 인덱스 값과 동일한 값으로 초기화된다는 것입니다.를 들어, 다음과 에서, " 예를들어배서에, 과같열은다음:서에배"는 과 같습니다.val array = Array(5, { i -> i })은 할된초 값다같 습니다 과음은입니다.[0,1,2,3,4]그리고 말하지 마,[0,0,0,0,0]그것이 문서에서 볼 수 있는 이유입니다.val asc = Array(5, { i -> (i * i).toString() }) 낳습 다니을다▁of의 답을 합니다.["0", "1", "4", "9", "16"]

다음과 같은 Int 배열을 만들 수 있습니다.

val numbers = IntArray(5, { 10 * (it + 1) })

5는 Int Array 크기입니다.람다 함수는 원소 init 함수입니다.[0,4]의 'it' 범위에 [1,5]의 1 make 범위를 더한 값

원점 함수는 다음과 같습니다.

 /**
 * An array of ints. When targeting the JVM, instances of this class are 
 * represented as `int[]`.
 * @constructor Creates a new array of the specified [size], with all elements 
 *  initialized to zero.
 */
 public class IntArray(size: Int) {
       /**
        * Creates a new array of the specified [size], where each element is 
        * calculated by calling the specified
        * [init] function. The [init] function returns an array element given 
        * its index.
        */
      public inline constructor(size: Int, init: (Int) -> Int)
  ...
 }

Arrays.kt에 정의된 IntArray 클래스

내 대답은 @maroun을 보완합니다. 배열을 초기화하는 몇 가지 방법은 다음과 같습니다.

배열 사용

val numbers = arrayOf(1,2,3,4,5)

엄격한 배열 사용

val numbers = intArrayOf(1,2,3,4,5)

행렬 유형 혼합

val numbers = arrayOf(1,2,3.0,4f)

배열 중첩

val numbersInitials = intArrayOf(1,2,3,4,5)
val numbers = arrayOf(numbersInitials, arrayOf(6,7,8,9,10))

동적 코드로 시작하는 기능

val numbers = Array(5){ it*2}

사용해 볼 수 있습니다.

var a = Array<Int>(5){0}

다음과 같이 기존의 표준 라이브러리 방법을 사용할 수 있습니다.

val numbers = intArrayOf(10, 20, 30, 40, 50)

다음과 같은 경우에도 특수 생성자를 사용하는 것이 합리적일 수 있습니다.

val numbers2 = IntArray(5) { (it + 1) * 10 }

값을 초기화하는 방법을 설명하는 크기와 람다를 전달합니다.다음은 설명서입니다.

/**
 * Creates a new array of the specified [size], where each element is calculated by calling the specified
 * [init] function. The [init] function returns an array element given its index.
 */
public inline constructor(size: Int, init: (Int) -> Int)

저는 왜 아무도 가장 간단한 대답을 하지 않았는지 궁금합니다.

val array: Array<Int> = [1, 2, 3]

원래 답변에 대한 의견 중 하나에 따르면, 저는 주석 인수에 사용될 때만 이것이 작동한다는 것을 깨달았습니다(이것은 저에게 정말로 예상치 못한 일이었습니다).

코틀린은 주석 외부에 배열 리터럴을 만드는 것을 허용하지 않는 것 같습니다.

예를 들어 args4j 라이브러리의 @Option을 사용하여 이 코드를 봅니다.


@옵션(이름 = "-h",별칭 = ["--도움말", "-?",사용법 = "도움말 표시")var 도움말: 부울 = false

인수 "는 "aliases"와 "aliases" 유형입니다.Array<String>

아래 문자열 검사를 초기화하는 동안

val strings = arrayOf("January", "February", "March")

전용 배열 Of 메서드를 사용하여 원시 int 배열을 쉽게 초기화할 수 있습니다.

val integers = intArrayOf(1, 2, 3, 4)

이 질문은 이미 좋은 답을 가지고 있습니다.다음은 intarray를 생성하기 위한 통합된 것입니다.

  1. 특정 값을 사용하여 배열을 만드는 중입니다.

    var arr = intArrayOf(12,2,21,43,23)
    var arr = arrayOf<Int>(12,2,21,43,23)
    

[12, 2, 21, 43, 23]

  1. 특정 요소로 채웁니다.여기는 1입니다.

    var arr  = IntArray(5).apply{fill(1)}
    val arr  = IntArray(5){1}
    

[1, 1, 1, 1, 1]

  1. 크기가 5인 배열을 20개 미만인 난수로 채우기

    val arr  = IntArray(5) { Random.nextInt(20) }
    

[0, 2, 18, 3, 12]

  1. 위치를 기준으로 배열 요소를 채우는 중입니다.여기서 배열은 5의 배수로 채워집니다.

    val arr  = IntArray(5) { i -> (i + 1) * 5 }
    

[5, 10, 15, 20, 25]

제 경우에는 서랍 항목을 초기화해야 합니다.아래 코드로 데이터를 작성합니다.

    val iconsArr : IntArray = resources.getIntArray(R.array.navigation_drawer_items_icon)
    val names : Array<String> = resources.getStringArray(R.array.navigation_drawer_items_name)


    // Use lambda function to add data in my custom model class i.e. DrawerItem
    val drawerItems = Array<DrawerItem>(iconsArr.size, init = 
                         { index -> DrawerItem(iconsArr[index], names[index])})
    Log.d(LOGGER_TAG, "Number of items in drawer is: "+ drawerItems.size)

사용자 정의 모델 클래스

class DrawerItem(var icon: Int, var name: String) {

}

다음과 같은 방법으로 배열을 초기화합니다.val paramValueList : Array<String?> = arrayOfNulls<String>(5)

전역에서 int 어레이 선언

var numbers= intArrayOf()

next onCreate 메서드를 사용하여 어레이를 초기화합니다.

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    //create your int array here
    numbers= intArrayOf(10,20,30,40,50)
}

간단한 방법:

정수의 경우:

var number = arrayOf < Int> (10, 20, 30, 40, 50)

모든 데이터 유형 보류

var number = arrayOf(10, "string value", 10.5)

다음과 같이 할 수 있습니다.

val numbers = intArrayOf(10, 20, 30, 40, 50)

또는

val numbers = arrayOf<Int>(10, 20, 30, 40, 50)

또한.

val numbers = arrayOf(10, 20, 30, 40, 50)

Java에서는 다음과 같은 배열을 초기화할 수 있습니다.

int numbers[] = new int[] {10, 20, 30, 40, 50}

그러나 Kotlin에서 어레이는 다음과 같은 여러 가지 방법으로 초기화되었습니다.

arrayOf() 함수를 사용할 수 있는 모든 일반 유형의 배열:

val arr = arrayOf(10, 20, 30, 40, 50)

val genericArray = arrayOf(10, "Stack", 30.00, 40, "Fifty")

Kotlin 배열의 유틸리티 함수를 사용하여 초기화할 수 있습니다.

val intArray = intArrayOf(10, 20, 30, 40, 50)

이런 방식으로 콜틴의 int 배열을 초기화할 수 있습니다.

 val values: IntArray = intArrayOf(1, 2, 3, 4, 5,6,7)

2차원 배열의 경우:

val rows = 3
val cols = 3
val value = 0
val array = Array(rows) { Array<Int>(cols) { value } }

요소 유형을 원하는 유형(String, Class, ...)으로 변경하고 값을 해당 기본값으로 변경할 수 있습니다.

배열 목록을 사용하여 배열을 채우고 반환할 수도 있습니다.아래 메소드는 목록에 항목 유형의 10,000개 요소를 추가한 다음 항목 배열을 반환합니다.

private fun populateArray(): Array<Item> {
    val mutableArray = ArrayList<Item>()
    for (i in 1..10_000) {
        mutableArray.add(Item("Item Number $i" ))
    }
    return mutableArray.toTypedArray()
}

Item 데이터 클래스는 다음과 같습니다.

data class Item(val textView: String)

Kotlin에서는 배열을 초기화하는 몇 가지 방법이 있습니다.

()의 배열:

var myarray = arrayOf(1,2,3,4,5)

배열 Of():

var myarray = arrayOf<Int>(1,2,3,4,5)

어레이 생성자 사용:

val num = Array(3, {i-> i*1})

기본 제공 공장 방식:

val num1 = intArrayOf(1, 2, 3, 4)
//For Byte Datatype
val num2 = byteArrayOf()
//For Character Datatype
val num3 = charArrayOf()
//For short Datatype
val num4 = shortArrayOf()
//For long
val num5 = longArrayOf()

여기 간단한 예가 있습니다.

val id_1: Int = 1
val ids: IntArray = intArrayOf(id_1)

언급URL : https://stackoverflow.com/questions/31366229/how-to-initialize-an-array-in-kotlin-with-values

반응형