如何从主列表中删除重复的内部列表.在java中?

  • 本文关键字:列表 内部 java 删除 java list
  • 更新时间 :
  • 英文 :

list<list<Integer>ms2=new ArrayList<>();
for(int a=0;a<ms2.size()-1;a++)
{
List<Integer>arr=new ArrayList<Integer>(ms2.get(a));
for( int n=a+1;n<ms2.size();n++)
{
List<Integer>arr1=new ArrayList<Integer>(ms2.get(n));
if(arr.equals(arr1))
{
ms. remove(n);//here ms is the same list as the (ms2)just a copied version.
}
}
}

例如,考虑Java中list的list:[[1,1,1],[23,4,5],[1,1,1]]。现在,输出:[[23,4,5],[1,1,1]]。我们该怎么做,知道吗?

以上代码不能用于输入:[[0,0,0,0],[0,0,0,0],[0,0,0,0][0,0,0,0]]。输出:[[0,0,0,0]],但对我来说,它抛出了一个错误。

您可以从列表的列表中构造一个Set来删除重复项并将其转换回List(如果需要的话)。

List<List<Integer>> list = List.of(List.of(1,1,1),List.of(23,4,5),List.of(1,1,1));
Set<List<Integer>> set = new LinkedHashSet<>(list); // remove duplicates, preserving order
List<List<Integer>> list2 = new ArrayList<>(set); // convert back to List

最新更新