如果是过滤结果,你看下这样行不行把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); }
哈哈 过滤结果呀
如果是过滤结果,你看下这样行不行把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); }
换另一种思路实现了,不过太感谢了小伙伴
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; }试试看
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); } }
重点是里面的元素的转换同学,例如:List<List<String>> 里面的元素是<123><223><423>,我是想把这三个集合的第一个位置上的取出来放到一个新集合中,第二个第三个位置同理。
重点是里面的元素的转换同学,例如:List<List<String>> 里面的元素是<123><223><423>,我是想把这三个集合的第一个位置上的取出来放到一个新集合中,第二个第三个位置同理。
链接: https://pan.baidu.com/s/1Ppkkp75YiM8R1_HjIgS1UA 密码: d599
链接: https://pan.baidu.com/s/1LdVOP39yB8C2CGOwnOLYIA 密码: hcy2
如果是过滤结果,你看下这样行不行把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);
}
如果是过滤结果,你看下这样行不行把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);
}
换另一种思路实现了,不过太感谢了小伙伴
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; }试试看
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);
}
}
还有,为啥你当初不用数组存
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;
}
list集合在放一个list对象。。做什么用的?