ArrayList——添加元素,被动跳过冗余元素
ArrayList - Add Elements, Passively Skipping Redundant Elements
假设我有两个数组列表:
List<String> arr = new ArrayList<>();
arryOne.add("Huey");
arryOne.add("Dewey");
arryOne.add("Louie");
List<String> arryTwo = new ArrayList<>();
arryTwo.add("Dewey");
arryTwo.add("Stuie");
有没有一些方便的API或相对简单的方法可以将“Stuie”添加到 arryOne 而忽略多余的“Dewey”元素?
我确定我可以蛮力执行 add/ignore 但希望有人可能知道通过集合 API 或类似方法的便利方法,只需几行代码即可完成此操作。谢谢!
没有,因为 List 是一种或多或少明确表示的数据类型:可以包含重复项。
换句话说,List,如果有的话,已经烘烤了第二个 Dewey
不是 多余的:
arr.addAll(arryTwo);
应该结果:[Huey, Dewey, Louie, Dewey, Stuie]
.
您需要其他数据类型。例如,一个 LinkedHashSet:
var set = new LinkedHashSet<String>();
var arr1 = List.of("Huey", "Dewey", "Louie");
var arr2 = List.of("Dewey", "Stuie");
set.addAll(arr1);
set.addAll(arr2);
System.out.println(set);
> [Huey, Dewey, Louie, Stuie]
假设我有两个数组列表:
List<String> arr = new ArrayList<>();
arryOne.add("Huey");
arryOne.add("Dewey");
arryOne.add("Louie");
List<String> arryTwo = new ArrayList<>();
arryTwo.add("Dewey");
arryTwo.add("Stuie");
有没有一些方便的API或相对简单的方法可以将“Stuie”添加到 arryOne 而忽略多余的“Dewey”元素?
我确定我可以蛮力执行 add/ignore 但希望有人可能知道通过集合 API 或类似方法的便利方法,只需几行代码即可完成此操作。谢谢!
没有,因为 List 是一种或多或少明确表示的数据类型:可以包含重复项。
换句话说,List,如果有的话,已经烘烤了第二个 Dewey
不是 多余的:
arr.addAll(arryTwo);
应该结果:[Huey, Dewey, Louie, Dewey, Stuie]
.
您需要其他数据类型。例如,一个 LinkedHashSet:
var set = new LinkedHashSet<String>();
var arr1 = List.of("Huey", "Dewey", "Louie");
var arr2 = List.of("Dewey", "Stuie");
set.addAll(arr1);
set.addAll(arr2);
System.out.println(set);
> [Huey, Dewey, Louie, Stuie]