这是我到目前为止得到的,但我很难用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);
不应包括重复点;即坐标相同的点。
正确实现equals
和hashcode
。使用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中没有看到任何东西,但我确信它一定存在比手动比较更好的东西。 例如: