我们有一个HashMap Integer / String,在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;
}
}
我们解码让Android Studio将上面的Java代码转换为Kotlin转换器决定将 for(int L = 1; L <= X; L++)
循环更改为while循环,这看起来好了,然后我们意识到while循环运行了3个循环,每个按钮单击 . Kotlin还抱怨了这些代码行 String name = hm.get(L = L + 1); String city = hm.get(L = L + 1);
我们将在下面发布Kotlin代码并提出问题
fun onNEXT(view: View?) {
etCity.setText("")
etName.setText("")
etID.setText("")
X = X + 3
var L = 0
while (L <= X) {
val id = hm[L - 2]
val name = hm.get(L - 1)
val city = hm.get(L)
etID.setText(id)
etName.setText(name)
etCity.setText(city)
L++
}
if (X == hm.size) {
X = 0
}
}
我们试着像这样编写一个For Next循环 for (L in 15 downTo 0 step 1)
似乎你不能算数了所以我们认为我们会使用 hm:size
作为值15并且只使用 downTo
所以问题是
-
我们如何使用Kotlin For Next Loop语法并在构造中包含hm:size?
-
我们将L声明为整数,但Kotlin不会让我们在While循环中使用
L = L + 1
,也不会使用For Next循环为什么? -
这里是奇怪的部分通知我们可以通过使用
X = X + 3
来增加X是X
被声明为内部var X = 0
,因为L
同样的方式
3 回答
我们使用了一套优雅的代码来完成问题的答案 .
我们使用了CharArray,因为格伦德尔和Array的概念似乎没问题
在onCreate方法中,我们通过调用onCO(null)加载了第一组数据
这是迭代使用的CharArray的工作代码
简单但不优雅 . 似乎代码是一个比迭代更好的计数器示例 .
控制For Next Look可能涉及更少的代码行 . 控制外观似乎是错误的方向 . 我们可能会尝试使用KEY WORD "when"来对此问题应用逻辑
好的,我会咬人的 .
以下代码将打印您的三元组:
现在让我们将相同的想法转换为一个函数:
经过一些进一步的研究后,我们的问题得到了部分答案 . 此代码仅显示如何遍历散列映射索引此遍历,每3条记录需要添加以使代码完整 . 这个答案适合任何偶然发现问题的人 . 下面提供了代码和资源的链接
该链接将允许您在浏览器中尝试Kotlin代码示例LINK
在问这个问题之前我们只进行了适度的研究 . 我们的Appoligies . 如果有人与Kotlin重新开始,那么第二个链接可能更有 Value . 我们很少在Android Developers页面中找到可理解的答案 . Kotlin和Android页面初学者更友好,而不是技术范围 . 享受链接Kotlin and Android