Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 使用某些条件从现有ArrayList创建新ArrayList_Kotlin_Arraylist - Fatal编程技术网

Kotlin 使用某些条件从现有ArrayList创建新ArrayList

Kotlin 使用某些条件从现有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”]、[“

我有一个带有一些字符的数组列表和另一个带有一些数字的数组。 我想通过加入它们来创建一个新的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”]、[“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类型的有保留的猜测。