java - 遍历多个数组列表并获取元素
问题描述
public static void main(String[] args)
{
loadDependencies ld = new loadDependencies();
List<String> ls = ld.loadDependenciesFromPom();
getAvailableHigherVersions ah = new getAvailableHigherVersions();
List<List<String>> vl = ah.versionListOnly();
String previousVersion=null;
for ( int a=0; a<vl.size();a++) {
List<String> tmp = vl.get(a);
for(int i=0; i<ls.size();i++){
String firstE = ls.get(i);
for(int j=0;j<tmp.size();j++) {
if (i==0 && j==0){
//xu.versionUpdate(previousVersion, tmp.get(j));
//String previousVersiontt = ls.get(i);
System.out.println(firstE + "----" + tmp.get(j));
}
/*xu.versionUpdate(previousVersion, tmp.get(j));
previousVersion=tmp.get(j);*/
//System.out.println(previousVersion+"-"+tmp.get(j));
// previousVersion = tmp.get(j);
}
}
}
}
“ls”是一个字符串列表。它包含这样的
[1,4,5,7]
“vl”是一个字符串列表。它包含这样的
[[1.5,1.6,1.7],[4.1,4.2,4.3],[5.1,5.2],[7.1,7.4]]
我需要做的是首先取 ls 列表的第一个元素
1
然后我需要获取 vl 列表中的第一个元素
[1.5,1.6,1.7]
那么输出应该是
[1,1.5]
那么下一个输出将是
[1.5,1.6]
同样遍历数组。然后接下来取 ls 的第二个元素
4
然后它应该像 4,4.1 然后 4.1,4.2 一样,直到 ls 为空。我尝试了上面的代码,但有时它会迭代多次。有什么提示可以解决这个问题吗?
解决方案
所以如果我理解得很好,你想要这样的东西:
for (int a = 0; a < ls.size(); a++)
{
// Get first element
String firstE = ls.get(a);
// Get corresponding vl elements
List<String> vls = vl.get(a);
// Now print the elements
// The first element of vl should be preceeded by the corresponding element in ls
// The others by the predecessor in the same array
for (int b = 0; b < vls.size(); b++)
{
System.out.print("[");
if (b == 0)
System.out.print(firstE);
else
System.out.print(vls.get(b - 1));
System.out.println(", " + vls.get(b) + "]");
}
}
推荐阅读
- node.js - 多次调用后没有 Access-Control-Allow-Origin 编辑 > Axios 网络错误捕获
- python - 删除时从子模型中删除文件对象
- autohotkey - AutoHotkey - 脚本在一段时间后停止工作
- typescript - Vue:无效的道具:类型
- java - 更改枢轴评估位置会导致快速排序失败
- java - 从 thymelaf 表单输入值创建 ArrayList
- java - 如何生成多合一的 Gradle 项目?
- modula-2 - 致命错误 (13):XDS Modula-2 没有程序入口点?
- python - 为什么使用 datetime 模块解析日期时格式代码“%-m”和“%-d”不起作用?
- javascript - 将数组项映射到下拉过滤器错误 - Gatsby