java - 通过第二个元素统一数组的 Arraylist

标签 java arraylist set unique

给定一个像这样的数组列表:

List<Integer[]> list = new Arraylist<>();
list.add(new Integer[] {13, 1});
list.add(new Integer[] {100, 2});
list.add(new Integer[] {143, 2});
list.add(new Integer[] {185, 3});
list.add(new Integer[] {111, 3});
list.add(new Integer[] {98, 4});

如何使列表的第二个元素与第一个元素的值最低?

通常,我只是将列表转换为集合,然后再次将其作为列表返回,但如何处理这种情况?

提前致谢!

最佳答案

我不确定这是否是最好的解决方案,但您仍然可以使用一组找到的值并这样做:

    Set<Integer> found=new HashSet<>();
    list.removeIf(p->!found.add(p[1]));

这个想法是您无论如何都需要存储找到的值。您可以将过滤器与流 Api 一起使用,但保持状态比较困难,并且您可能仍然需要使用已添加的值维护另一个集合。所以我认为这是一个简单的解决方案。

如果您将其作为给定值,则第一个值始终为 100。否则您可能需要稍微修改一下;)

关于java - 通过第二个元素统一数组的 Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49940279/

相关文章:

c++ - C++ `unordered_set` 中两个 "not working"的交集在类方法中但可与 `set` 一起使用?

java - 用于查找以 @ 开头并以空格或换行符结尾的单词的正则表达式

python - 如何使用python将数据显示为数组格式

java - 递归计算中偶发的StackOverflowError

java - 数组是否为空?

java - 将接口(interface)作为数组列表类型提供时出现编译错误

java - 如何在 Java 中实现集合数据结构?

linux - 调试输出未正确显示

java.lang.IllegalStateException : Could not find method btnSubmit(View) in a parent or ancestor Context for android:onClick

java - 为什么在空引用上调用(静态)方法不会抛出 NullPointerException?