各位大神,请教个问题:将一个List<List<String>>集合的每一列数据取出变成一个新的集合List<List<String>>

解决方案 »

  1.   

    他的每一条数据不是List<string>型的吗?
      

  2.   

    想要得到的结果是List<String>型的
      

  3.   

    你是想要把里面的数据放在一个新的list集合里面吗?
      

  4.   

    [图片]
    重点是里面的元素的转换同学,例如:List<List<String>> 里面的元素是<123><223><423>,我是想把这三个集合的第一个位置上的取出来放到一个新集合中,第二个第三个位置同理。
      

  5.   

    [图片]
    重点是里面的元素的转换同学,例如:List<List<String>> 里面的元素是<123><223><423>,我是想把这三个集合的第一个位置上的取出来放到一个新集合中,第二个第三个位置同理。
    链接: https://pan.baidu.com/s/1Ppkkp75YiM8R1_HjIgS1UA 密码: d599
      

  6.   

    重新给你发个链接
    链接: https://pan.baidu.com/s/1LdVOP39yB8C2CGOwnOLYIA 密码: hcy2
      

  7.   

    List.addAll()
      

  8.   

    哈哈 过滤结果呀

    如果是过滤结果,你看下这样行不行把456 这个过滤掉了public static void main(String[] args) {
            List<List<String>> lists = new ArrayList<>();
            List<String> var0 = new ArrayList<>();
            List<String> var1 = new ArrayList<>();
            List<String> var2 = new ArrayList<>();
            var0.add("123");
            var1.add("456");
            var2.add("789");
            lists.add(var0);
            lists.add(var1);
            lists.add(var2);
            List<List<String>> result = lists.stream().filter(V->{
                return !"456".equalsIgnoreCase(V.get(0));
            }).collect(Collectors.toList());
            System.out.println(result);
        }
      

  9.   

    哈哈 过滤结果呀

    如果是过滤结果,你看下这样行不行把456 这个过滤掉了public static void main(String[] args) {
            List<List<String>> lists = new ArrayList<>();
            List<String> var0 = new ArrayList<>();
            List<String> var1 = new ArrayList<>();
            List<String> var2 = new ArrayList<>();
            var0.add("123");
            var1.add("456");
            var2.add("789");
            lists.add(var0);
            lists.add(var1);
            lists.add(var2);
            List<List<String>> result = lists.stream().filter(V->{
                return !"456".equalsIgnoreCase(V.get(0));
            }).collect(Collectors.toList());
            System.out.println(result);
        }

    换另一种思路实现了,不过太感谢了小伙伴
      

  10.   

    private static List<List<String>> transposeStr(List<List<String>> resources) { List<List<String>> converts = new LinkedList<List<String>>();
    List<String> newList; int i = 0;
    for (List<String> list : resources) { int j = 0; for (String str : list) { newList = i == 0 ? new LinkedList<String>() : converts.get(j); newList.add(str); if (i == 0) {
    converts.add(newList);
    } j++;
    } i++;
    } return converts; }试试看
      

  11.   


            public void SortList(List<List<string>> sourceList, out List<List<string>> sortList)
            {
                sortList = new List<List<string>>();
                if (sourceList == null)
                    return;            var sourceLenCollection = sourceList.Select(x => x.Count);
                for (int i = 0; i < sourceLenCollection.Max(); i++)
                {
                    var innerList = new List<string>();
                    foreach (var source in sourceList)
                    {
                        if (source.Count <= i)
                            continue;
                        innerList.Add(source[i]);
                    }
                    sortList.Add(innerList);
                }
            }
      

  12.   

    可以cccc
      

  13.   

    如果是的话,你把数组替换成list ,然后,里面的push(),就等同于 list的add,,,在实际调前台的东西,不方便调后台,就这么给你写了下,,,希望能解决你的问题:里面的 两种for都是遍历,你写成对应的java的for循环就行了
      

  14.   

    他的每一条数据不是List<string>型的吗?
      

  15.   

    两个for循环,i相同时存进一个新的list
      

  16.   

    你那个内层的list中String数量是统一的,还是每个list中的数量都不一样
    还有,为啥你当初不用数组存
      

  17.   

        public static void main(String[] args) {
            List<String> list1 = new ArrayList<>();
            list1.add("a");
            list1.add("b");
            list1.add("c");
            list1.add("d");
            List<String> list2 = new ArrayList<>();
            list2.add("e");
            list2.add("f");
            list2.add("g");
            list2.add("h");
            list2.add("i");
            List<String> list3 = new ArrayList<>();
            list3.add("j");
            list3.add("k");
            list3.add("l");
            List<String> list4 = new ArrayList<>();
            list4.add("m");
            list4.add("n");
            list4.add("o");
            list4.add("p");
            List<List<String>> list = new ArrayList<>();
            list.add(list1);
            list.add(list2);
            list.add(list3);
            list.add(list4);
            List<List<String>> result = change(list);
            for (int i = 0; i < result.size(); i++) {
                System.out.println(result.get(i));
            }
        }    public static List<List<String>> change(List<List<String>> list){
            int h = list.get(0).size();
            for (int i = 1; i < list.size(); i++) {
                if (list.get(i).size() > h) {
                    h = list.get(i).size();
                }
            }
            
            String[][] arrays = new String[h][list.size()];
            for (int i = 0; i < list.size(); i++) {
                for (int j = 0; j < list.get(i).size(); j++) {
                    arrays[j][i] = list.get(i).get(j);
                }
            }
            
            List<List<String>> results = new ArrayList<>();
            
            for (int i = 0; i < h; i++) {
                results.add(Arrays.asList(arrays[i]));
            }
            
            return results;
        }
      

  18.   

    1个list集合放一个String  
    list集合在放一个list对象。。做什么用的?