当前位置: 首页 > 知识库问答 >
问题:

如何返回一个列表中的所有点与xs和ys。在Java中使用流时?[副本]

欧奇希
2023-03-14
  • 不应包括重复点;即具有相同坐标的点。
  • 并且不应包括具有负坐标的点。

这是我到目前为止得到的,但我很难用y坐标做同样的事情。

static List<Point> ex5(List<Integer>xs, List<Integer> ys){
    List<Point> p = xs.stream()
            .map(e -> new Point(e , 0))
            .collect(Collectors.toList());
    return p ;
}

下面是示例数据。知道我错过了什么吗?

List<Integer> pointx = new ArrayList<>();
pointx.add(1);
pointx.add(-2);
pointx.add(3);
pointx.add(4);
pointx.add(1);

List<Integer> pointy = new ArrayList<>();
pointy.add(6);
pointy.add(7);
pointy.add(8);
pointy.add(9);
pointy.add(6);

共有1个答案

权弘新
2023-03-14

不应包括重复点;即坐标相同的点。

正确实现equalshashcode。使用stream#distince()方法或set而不是list

并且不应包括具有负坐标的点。

static List<Point> ex5(List<Integer> xs, List<Integer> ys){
    Set<Point> set = new HashSet<>();
    int min = Math.min(xs.size(), ys.size());
    for (int i=0; i<min; i++){
        int x = xs.get(i);
        int y = ys.get(i);
        if (x >=0 && y>=0) {
            set.add(new Point(x, y));
        }
    }
    return new ArrayList<>(set);
}

>

  • 我使用数学#min(int,int)来避免IndexOutOfBoundsException。您可能希望以更好的方式处理列表大小不相等的情况。

    使用intStream#ange(int,int)使用java-stream是可能的,但它没有带来真正的好处。对于某些开发人员来说,所有这些可能看起来更易读(这是个人喜好的问题)。

    int min = Math.min(xs.size(), ys.size());
    Set<Point> set = IntStream.range(0, min)
            .mapToObj(i -> new Point(xs.get(i), ys.get(i)))
            .filter(point-> point.getX()>=0 && point.getY()>=0)
            .collect(Collectors.toSet());
    return new ArrayList<>(set);
    

  •  类似资料:
    • 问题内容: 我正在使用的SQLite数据库表会在需要时添加列。我不想对列进行硬编码,否则会冒着更新数据库而忘记更新硬编码值的风险。如何返回表中所有列的名称?(最好在中) 问题答案: 最好是使用实例并使用查询方法 应该有列名

    • 因此,我试图查看列表中的所有整数是奇数,还是偶数,或者是奇数和偶数兼而有之。我已经有了一个大致的框架,但是我有没有可能同时处理一个列表中的所有整数,看看它们是奇数还是偶数?

    • 我有一个的数组,它们都有一个的列表: 我想创建一个包含所有变量的列表。我今天是这样做的: 我尝试过此操作,但它返回给我一个,而我想要一个,其中附加了列表的所有元素(使用):

    • 问题内容: 我有很多表具有相同的列“ customer_number”。我可以通过查询获取所有这些表的列表: 问题是如何从所有这些表中获取具有特定客户编号的所有记录,而不对每个表运行相同的查询。 问题答案: 我假设您要自动执行此操作。两种方法。 SQL生成SQL脚本 。 PLSQL 使用动态sql的类似想法:

    • 我在Java 8 lambdas和streams上测试了函数,似乎在执行的情况下,即使有多个对象与0相比,它也会返回绑定候选项中的任意元素,而无需进一步考虑。 对于这样的最大期望行为,是否有一个明显的技巧或函数,以便返回所有的最大值?我在API中没有看到任何东西,但我确信它一定存在比手动比较更好的东西。 例如: