আপনি যদি কোটলিন ব্যবহার করেন, আপনি যেমন এক্সটেনশন ফাংশনগুলি ব্যবহার করতে পারেন, উদাহরণস্বরূপ:
fun <T> LongSparseArray<T>.valuesIterator(): Iterator<T> {
val nSize = this.size()
return object : Iterator<T> {
var i = 0
override fun hasNext(): Boolean = i < nSize
override fun next(): T = valueAt(i++)
}
}
fun <T> LongSparseArray<T>.keysIterator(): Iterator<Long> {
val nSize = this.size()
return object : Iterator<Long> {
var i = 0
override fun hasNext(): Boolean = i < nSize
override fun next(): Long = keyAt(i++)
}
}
fun <T> LongSparseArray<T>.entriesIterator(): Iterator<Pair<Long, T>> {
val nSize = this.size()
return object : Iterator<Pair<Long, T>> {
var i = 0
override fun hasNext(): Boolean = i < nSize
override fun next() = Pair(keyAt(i), valueAt(i++))
}
}
আপনি যদি চান তবে একটি তালিকায় রূপান্তর করতেও পারেন। উদাহরণ:
sparseArray.keysIterator().asSequence().toList()
আমি মনে করি এটি নিজেরাই (পুনরুক্তিতে নয়) ব্যবহার remove
করে আইটেমগুলি মুছে ফেলা নিরাপদ হতে পারে LongSparseArray
কারণ এটি আরোহী ক্রমে রয়েছে।
সম্পাদনা করুন: মনে হচ্ছে ব্যবহার করা এমনকি একটি সহজ উপায়, সংগ্রহ-ktx (উদাহরণস্বরূপ এখানে )। এটি আমি যা লিখেছি তার সাথে খুব মিলিয়ে বাস্তবায়িত হয়েছে।
গ্রেডলের জন্য এটির প্রয়োজন:
implementation 'androidx.core:core-ktx:#'
implementation 'androidx.collection:collection-ktx:#'
লংস্পার্সআরয়ের ব্যবহার এখানে:
val sparse= LongSparseArray<String>()
for (key in sparse.keyIterator()) {
}
for (value in sparse.valueIterator()) {
}
sparse.forEach { key, value ->
}
আর যে জাভা ব্যবহারের জন্য, আপনি ব্যবহার করতে পারেন LongSparseArrayKt.keyIterator
, LongSparseArrayKt.valueIterator
এবং LongSparseArrayKt.forEach
, উদাহরণস্বরূপ। অন্যান্য ক্ষেত্রে একই।