Перебрать несколько массивов и получить элементы - PullRequest
0 голосов
/ 01 апреля 2019
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]]

Что мне нужно сделать, так это сначала взять 1-й элемент списка 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 не опустеет. Я пробовал приведенный выше код, но несколько раз он повторяется несколько раз. Любая подсказка, чтобы исправить эту проблему?

Ответы [ 3 ]

1 голос
/ 01 апреля 2019

Так что, если я правильно понял, вы хотите что-то вроде этого:

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

}
1 голос
/ 01 апреля 2019
for(int i=0;i<ls.size();i++){
   List<String> tmp = vl.get(i);
   System.out.println(ls.get(i)+" "+temp.get(0));
   for(int j=1;j<tem.size()-1;j++){
      System.out.println(temp.get(j)+" "+temp.get(j+1));
   }       
}
0 голосов
/ 01 апреля 2019
for ( int a=0; a<vl.size();a++) {
        List<String> tmp = vl.get(a);
        String firstE = ls.get(a);
            for (int j = 0; j < tmp.size(); j++) {
                if (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);

        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...