首页 > 解决方案 > 遍历多个数组列表并获取元素

问题描述

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 为空。我尝试了上面的代码,但有时它会迭代多次。有什么提示可以解决这个问题吗?

标签: javaarraysstringloopsarraylist

解决方案


所以如果我理解得很好,你想要这样的东西:

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) + "]");
  }

}

推荐阅读