Kotlin 使用某些条件从现有ArrayList创建新ArrayList
我有一个带有一些字符的数组列表和另一个带有一些数字的数组。 我想通过加入它们来创建一个新的ArrayListKotlin 使用某些条件从现有ArrayList创建新ArrayList,kotlin,arraylist,Kotlin,Arraylist,我有一个带有一些字符的数组列表和另一个带有一些数字的数组。 我想通过加入它们来创建一个新的ArrayList val mList = arrayListOf( "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k" ) val aList = arrayListOf( "1", "2", "3", "4", "5" ) 我想在合并后输出以下 [“a”、“1”]、[“b”、“2”]、[“c”、“3”]、[“d”、“4”]、[“
val mList = arrayListOf(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"
)
val aList = arrayListOf(
"1", "2", "3", "4", "5"
)
我想在合并后输出以下
[“a”、“1”]、[“b”、“2”]、[“c”、“3”]、[“d”、“4”]、[“e”、“5”]、[“f”、“1”]、[“g”、“2”]、[“h”、“3”]、[“i”、“4”]、[“j”、“5”]、[“k”、“1”]
请帮助在这种情况下,您会发现
对机械索引(操作:(索引:Int,T)->Unit):Unit
和模运算符(%
)有很好的使用。您可以这样做:
val mList = arrayListOf(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"
)
val aList = arrayListOf(
"1", "2", "3", "4", "5"
)
fun main() {
val arrayList = arrayListOf<ArrayList<String>>()
mList.forEachIndexed { index, s -> arrayList.add(arrayListOf(s, aList[index % aList.size])) }
println(arrayList) // [[a, 1], [b, 2], [c, 3], [d, 4], [e, 5], [f, 1], [g, 2], [h, 3], [i, 4], [j, 5], [k, 1]]
}
val mList=arrayListOf(
“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”
)
val aList=arrayListOf(
"1", "2", "3", "4", "5"
)
主要内容(){
val arrayList=arrayListOf()
mList.foreachinedexed{index,s->arrayList.add(arrayListOf(s,aList[index%aList.size]))
println(arrayList)/[[a,1],[b,2],[c,3],[d,4],[e,5],[f,1],[g,2],[h,3],[i,4],[j,5],[k,1]]
}
在这种情况下,您会发现对机械索引(操作:(索引:Int,T)->Unit):Unit
和模运算符(%
)的良好使用。您可以这样做:
val mList = arrayListOf(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"
)
val aList = arrayListOf(
"1", "2", "3", "4", "5"
)
fun main() {
val arrayList = arrayListOf<ArrayList<String>>()
mList.forEachIndexed { index, s -> arrayList.add(arrayListOf(s, aList[index % aList.size])) }
println(arrayList) // [[a, 1], [b, 2], [c, 3], [d, 4], [e, 5], [f, 1], [g, 2], [h, 3], [i, 4], [j, 5], [k, 1]]
}
val mList=arrayListOf(
“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”
)
val aList=arrayListOf(
"1", "2", "3", "4", "5"
)
主要内容(){
val arrayList=arrayListOf()
mList.foreachinedexed{index,s->arrayList.add(arrayListOf(s,aList[index%aList.size]))
println(arrayList)/[[a,1],[b,2],[c,3],[d,4],[e,5],[f,1],[g,2],[h,3],[i,4],[j,5],[k,1]]
}
只有当第一个列表更大时,被接受的答案才会起作用
与尺寸无关的另一种方法是在两个列表上使用模:
val mList = arrayListOf(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"
)
val aList = arrayListOf(
"1", "2", "3", "4", "5"
)
fun main() {
val combinedList: List<Pair<String, String>> =
(0 until max(mList.size, aList.size)) // generate indices
.map { index -> mList[index % mList.size] to aList[index % aList.size] } // convert indices to actual pairs
// use the combined-list like this:
val pair = combined[0]
println(pair.first) // "a"
println(pair.second) // "1"
// or this:
combined.forEach {
println("${it.first}, ${it.second}")
}
// if you want a mutable list (for adding\removing pairs yourslef), you can type:
val mutableCombinedList: MutableList<Pair<String, String>> = combinedList.toMutableList()
// and then you can add\remove pairs:
mutableCombinedList += ("r" to "99")
mutableCombinedList -= ("a" to "1")
}
val mList=arrayListOf(
“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”
)
val aList=arrayListOf(
"1", "2", "3", "4", "5"
)
主要内容(){
val组合列表:列表=
(0到max(mList.size,aList.size))//生成索引
.map{index->mList[index%mList.size]到aList[index%aList.size]}//将索引转换为实际对
//使用如下组合列表:
val对=组合[0]
println(成对第一)/“a”
println(成对秒)/“1”
//或者这个:
组合式forEach{
println(${it.first},${it.second})
}
//如果需要可变列表(用于添加\删除SLEF中的对),可以键入:
val mutableCombinedList:MutableList=combinedList.toMutableList()
//然后您可以添加\删除对:
可变组合列表+=(“r”到“99”)
可变组合列表-=(“a”到“1”)
}
只有当第一个列表更大时,被接受的答案才会起作用
与尺寸无关的另一种方法是在两个列表上使用模:
val mList = arrayListOf(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"
)
val aList = arrayListOf(
"1", "2", "3", "4", "5"
)
fun main() {
val combinedList: List<Pair<String, String>> =
(0 until max(mList.size, aList.size)) // generate indices
.map { index -> mList[index % mList.size] to aList[index % aList.size] } // convert indices to actual pairs
// use the combined-list like this:
val pair = combined[0]
println(pair.first) // "a"
println(pair.second) // "1"
// or this:
combined.forEach {
println("${it.first}, ${it.second}")
}
// if you want a mutable list (for adding\removing pairs yourslef), you can type:
val mutableCombinedList: MutableList<Pair<String, String>> = combinedList.toMutableList()
// and then you can add\remove pairs:
mutableCombinedList += ("r" to "99")
mutableCombinedList -= ("a" to "1")
}
val mList=arrayListOf(
“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”
)
val aList=arrayListOf(
"1", "2", "3", "4", "5"
)
主要内容(){
val组合列表:列表=
(0到max(mList.size,aList.size))//生成索引
.map{index->mList[index%mList.size]到aList[index%aList.size]}//将索引转换为实际对
//使用如下组合列表:
val对=组合[0]
println(成对第一)/“a”
println(成对秒)/“1”
//或者这个:
组合式forEach{
println(${it.first},${it.second})
}
//如果需要可变列表(用于添加\删除SLEF中的对),可以键入:
val mutableCombinedList:MutableList=combinedList.toMutableList()
//然后您可以添加\删除对:
可变组合列表+=(“r”到“99”)
可变组合列表-=(“a”到“1”)
}
为了完整起见,另一个选项是使用MAPINDEX
函数:
val combined = mList.mapIndexed { index, value -> value to aList[index % aList.size] }
println(combined)
// output: [(a, 1), (b, 2), (c, 3), (d, 4), (e, 5), (f, 1), (g, 2), (h, 3), (i, 4), (j, 5), (k, 1)]
为完整起见,另一个选项是使用
mapindex
函数:
val combined = mList.mapIndexed { index, value -> value to aList[index % aList.size] }
println(combined)
// output: [(a, 1), (b, 2), (c, 3), (d, 4), (e, 5), (f, 1), (g, 2), (h, 3), (i, 4), (j, 5), (k, 1)]
结果ArrayList的元素类型应该是什么?你的回答帮助meI删除了它,因为我一开始没有仔细阅读你的问题:)你能不能再发布一次,这样我就可以接受它作为答案?好的,我添加了它,并对结果ArrayList的类型进行了限定猜测。元素类型应该是什么ArrayList是吗?你的回答帮助我删除了它,因为我一开始没有仔细阅读你的问题:)你能再发一次吗,这样我就可以接受它作为答案了好吧,我添加了一个关于结果ArrayList类型的有保留的猜测。