For loop Android Kotlin在下一个循环中替换while

For loop Android Kotlin在下一个循环中替换while,for-loop,kotlin,For Loop,Kotlin,我们有一个HashMap整数/字符串,在Java中,我们将迭代HashMap,并通过单击按钮一次显示3个键值对。下面是Java代码 hm.put(1, "1"); hm.put(2, "Dwight"); hm.put(3, "Lakeside"); hm.put(4, "2"); hm.put(5, "Billy"); hm.put(6, "Georgia"); hm.put(7, "3"); hm.put(8, "Sam"); hm.put(9, "Canton"); hm.put(10,

我们有一个HashMap整数/字符串,在Java中,我们将迭代HashMap,并通过单击按钮一次显示3个键值对。下面是Java代码

hm.put(1, "1");
hm.put(2, "Dwight");
hm.put(3, "Lakeside");
hm.put(4, "2");
hm.put(5, "Billy");
hm.put(6, "Georgia");
hm.put(7, "3");
hm.put(8, "Sam");
hm.put(9, "Canton");
hm.put(10, "4");
hm.put(11, "Linda");
hm.put(12, "North Canton");
hm.put(13, "5");
hm.put(14, "Lisa");
hm.put(15, "Phoenix");
onNEXT(null);

public void onNEXT(View view){
    etCity.setText("");
    etName.setText("");
    etID.setText("");

    X = X + 3;

    for(int L = 1; L <= X; L++ ){
        String id = hm.get(L);
        String  name = hm.get(L = L + 1);
        String  city = hm.get(L = L + 1);

        etID.setText(id);
        etName.setText(name);
        etCity.setText(city);

    }

    if(X == hm.size()){
        X = 0;
    }
}
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
我们试图编写一个类似这样的For Next循环
For(从15中的L下降到0步骤1)
您似乎无法数到,因此我们认为我们将使用
hm:size
作为值15,只需使用
downTo

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
所以问题是

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
  • 如何使用Kotlin进行下一个循环语法,并在构造中包含hm:size
  • 我们已将L声明为整数,但Kotlin不允许我们使用
    L=L+1
    在While循环和For Next循环中为什么
  • 下面是奇怪的部分注意事项,我们可以使用
    X=X+3
    X
    在上面被声明为内部
    var X=0
    L
    相同

经过进一步研究,这里是对我们问题的部分回答 此代码仅显示如何遍历哈希映射索引此遍历每需要添加3条记录才能使代码完整。这个答案适用于任何偶然发现这个问题的人。下面提供了代码和资源链接

fun main(args: Array<String>) {
val map = hashMapOf<String, Int>()
map.put("one", 1)
map.put("two", 2)

for ((key, value) in map) {
    println("key = $key, value = $value")
}
}
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
fun main(args:Array){
val map=hashMapOf()
地图放置(“一”,1)
地图放置(“2”,2)
用于映射中的((键、值){
println(“key=$key,value=$value”)
}
}
该链接将允许您在浏览器中尝试Kotlin代码示例

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
在提出这个问题之前,我们只做了适度的研究。我们的道歉。如果有人从Kotlin重新开始,这第二个链接可能更有价值。我们很少在Android开发者页面上找到可以理解的答案。Kotlin和Android页面对初学者更友好,并且在范围上没有那么专业。享受链接

经过进一步研究,这里是对我们问题的部分回答
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
此代码仅显示如何遍历哈希映射索引此遍历每需要添加3条记录才能使代码完整。这个答案适用于任何偶然发现这个问题的人。下面提供了代码和资源链接

fun main(args: Array<String>) {
val map = hashMapOf<String, Int>()
map.put("one", 1)
map.put("two", 2)

for ((key, value) in map) {
    println("key = $key, value = $value")
}
}
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
fun main(args:Array){
val map=hashMapOf()
地图放置(“一”,1)
地图放置(“2”,2)
用于映射中的((键、值){
println(“key=$key,value=$value”)
}
}
该链接将允许您在浏览器中尝试Kotlin代码示例

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
在提出这个问题之前,我们只做了适度的研究。我们的道歉。如果有人从Kotlin重新开始,这第二个链接可能更有价值。我们很少在Android开发者页面上找到可以理解的答案。Kotlin和Android页面对初学者更友好,并且在范围上没有那么专业。享受链接 好的,我咬一口。
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
以下代码将打印您的三元组:

val hm = HashMap<Int, String>()
hm[1] = "1"
hm[2] = "Dwight"
hm[3] = "Lakeside"
hm[4] = "2"
hm[5] = "Billy"
hm[6] = "Georgia"
hm[7] = "3"
hm[8] = "Sam"
hm[9] = "Canton"
hm[10] = "4"
hm[11] = "Linda"
hm[12] = "North Canton"
hm[13] = "5"
hm[14] = "Lisa"
hm[15] = "Phoenix"

for (i in 1..hm.size step 3) {
    println(Triple(hm[i], hm[i + 1], hm[i + 2]))
}
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
val hm=HashMap()
hm[1]=“1”
hm[2]=“德怀特”
hm[3]=“湖边”
hm[4]=“2”
hm[5]=“比利”
hm[6]=“格鲁吉亚”
hm[7]=“3”
hm[8]=“山姆”
hm[9]=“广东”
hm[10]=“4”
hm[11]=“琳达”
hm[12]=“北州”
hm[13]=“5”
hm[14]=“丽莎”
hm[15]=“凤凰”
用于(1..hm.尺寸步骤3中的i){
println(三重(hm[i],hm[i+1],hm[i+2]))
}
现在,让我们将相同的想法转换为一个函数:

var count = 0
fun nextTriplet(hm: HashMap<Int, String>): Triple<String?, String?, String?> {
    val result = mutableListOf<String?>()
    for (i in 1..3) {
        result += hm[(count++ % hm.size) + 1]
    }
    return Triple(result[0], result[1], result[2])
}
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
var计数=0
有趣的下一集(hm:HashMap):三重{
val result=mutableListOf()
对于(1..3中的i){
结果+=hm[(计数+++%hm.size)+1]
}
返回三元组(结果[0],结果[1],结果[2])
}
好的,我咬一口。
以下代码将打印您的三元组:

val hm = HashMap<Int, String>()
hm[1] = "1"
hm[2] = "Dwight"
hm[3] = "Lakeside"
hm[4] = "2"
hm[5] = "Billy"
hm[6] = "Georgia"
hm[7] = "3"
hm[8] = "Sam"
hm[9] = "Canton"
hm[10] = "4"
hm[11] = "Linda"
hm[12] = "North Canton"
hm[13] = "5"
hm[14] = "Lisa"
hm[15] = "Phoenix"

for (i in 1..hm.size step 3) {
    println(Triple(hm[i], hm[i + 1], hm[i + 2]))
}
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
val hm=HashMap()
hm[1]=“1”
hm[2]=“德怀特”
hm[3]=“湖边”
hm[4]=“2”
hm[5]=“比利”
hm[6]=“格鲁吉亚”
hm[7]=“3”
hm[8]=“山姆”
hm[9]=“广东”
hm[10]=“4”
hm[11]=“琳达”
hm[12]=“北州”
hm[13]=“5”
hm[14]=“丽莎”
hm[15]=“凤凰”
用于(1..hm.尺寸步骤3中的i){
println(三重(hm[i],hm[i+1],hm[i+2]))
}
现在,让我们将相同的想法转换为一个函数:

var count = 0
fun nextTriplet(hm: HashMap<Int, String>): Triple<String?, String?, String?> {
    val result = mutableListOf<String?>()
    for (i in 1..3) {
        result += hm[(count++ % hm.size) + 1]
    }
    return Triple(result[0], result[1], result[2])
}
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
var计数=0
有趣的下一集(hm:HashMap):三重{
val result=mutableListOf()
对于(1..3中的i){
结果+=hm[(计数+++%hm.size)+1]
}
返回三元组(结果[0],结果[1],结果[2])
}

我们使用了一套极不优雅的代码来回答这个问题。
我们使用了CharArray,因为Grendel似乎对and数组的概念没什么意见

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
在onCreate方法中,我们通过调用onCO(null)加载了第一组数据

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
下面是迭代使用的字符集的工作代码

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
    fun onCO(view: View?){

    etCity.setText("")
    etName.setText("")
    etID.setText("")
    if(CharArray.size > YY){
        val id = CharArray[YY]
        val name =  CharArray[YY + 1]
        val city = CharArray[YY + 2]
        etID.setText(id.toString())
        etName.setText(name.toString())
        etCity.setText(city.toString())
        YY = YY + 3
    }else{
        YY = 0
        val id = CharArray[YY]
        val name =  CharArray[YY + 1]
        val city = CharArray[YY + 2]
        etID.setText(id.toString())
        etName.setText(name.toString())
        etCity.setText(city.toString())
        YY = YY + 3
    }
简单但不优雅。似乎代码是一个比迭代更好的计数器示例。

控制下一个外观可能需要更少的代码行。对外观的控制似乎是错误的方向。我们可能会尝试使用关键字“when”来对这个问题应用逻辑,因为此时此刻很忙

我们使用了一套非常不优雅的代码来完成问题的答案。
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
我们使用了CharArray,因为Grendel似乎对and数组的概念没什么意见

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
在onCreate方法中,我们通过调用onCO(null)加载了第一组数据

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
下面是迭代使用的字符集的工作代码

internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")
    fun onCO(view: View?){

    etCity.setText("")
    etName.setText("")
    etID.setText("")
    if(CharArray.size > YY){
        val id = CharArray[YY]
        val name =  CharArray[YY + 1]
        val city = CharArray[YY + 2]
        etID.setText(id.toString())
        etName.setText(name.toString())
        etCity.setText(city.toString())
        YY = YY + 3
    }else{
        YY = 0
        val id = CharArray[YY]
        val name =  CharArray[YY + 1]
        val city = CharArray[YY + 2]
        etID.setText(id.toString())
        etName.setText(name.toString())
        etCity.setText(city.toString())
        YY = YY + 3
    }
简单但不优雅。似乎代码是一个比迭代更好的计数器示例。

控制下一个外观可能需要更少的代码行。对外观的控制似乎是错误的方向。我们可以尝试使用关键词“何时”来对这个问题应用逻辑,因为此时此刻很忙

这似乎是一个非常复杂的解决方案(和问题)。关于解决方案:是否有任何理由使用
HashMap
而不是一个列表,其中每个元素代表您需要的3条数据?关于这个问题:你同时问了很多问题。特别是,“Kotlin不允许我们在While循环中使用L=L+1,也不允许在For Next循环中使用L=L+1,为什么?”这是什么意思?您会得到什么错误?我还鼓励您删除所有与问题无关的部分(如事实t
internal var YY = 0
val CharArray = arrayOf(1, "Dwight", "Lakeside",2,"Billy","Georgia",3,"Sam","Canton")