코틀린에서 값으로 배열을 초기화하는 방법은 무엇입니까?
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를 생성하기 위한 통합된 것입니다.
특정 값을 사용하여 배열을 만드는 중입니다.
var arr = intArrayOf(12,2,21,43,23) var arr = arrayOf<Int>(12,2,21,43,23)
[12, 2, 21, 43, 23]
특정 요소로 채웁니다.여기는 1입니다.
var arr = IntArray(5).apply{fill(1)} val arr = IntArray(5){1}
[1, 1, 1, 1, 1]
크기가 5인 배열을 20개 미만인 난수로 채우기
val arr = IntArray(5) { Random.nextInt(20) }
[0, 2, 18, 3, 12]
위치를 기준으로 배열 요소를 채우는 중입니다.여기서 배열은 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
'programing' 카테고리의 다른 글
이전 명령의 인수를 사용하는 방법은 무엇입니까? (0) | 2023.05.08 |
---|---|
pymongo - 다른 쿼리 매개 변수와 함께 필드에 대한 고유한 값을 가지려면 어떻게 해야 합니까? (0) | 2023.05.08 |
zure Active Directory에서 응용 프로그램을 삭제하려면 어떻게 해야 합니까? (0) | 2023.05.08 |
명령줄(단말기)에서 R 스크립트를 사용하는 가장 좋은 방법은 무엇입니까? (0) | 2023.05.08 |
C#의 문자열에서 마지막 4자를 가져오려면 어떻게 해야 합니까? (0) | 2023.05.03 |