我有以下代码,用于根据从List<Integers>
传递的点值对树映射进行排序,我将这些值分配给Point,然后将其放入映射中,在对映射进行排序后,我希望在List<List<Integers>>
中分配这些值,并以如下格式打印点:
1, 2
3, 4
5, 6
有没有人可以帮忙,下面是我的代码:
public class Solution {
List<List<Integer>> nearestXsteakHouses(int totalSteakhouses, List<List<Integer>> allLocations,
int numSteakhouses) {
Point[] points = new Point[numSteakhouses];
for (int i = 0; i < points.length; i++) {
points[i] = new Point(allLocations.get(i).get(0), allLocations.get(i).get(1));
}
calculate(points, numSteakhouses);
return allLocations;
}
private List<Integer> calculate(Point[] point, int numSteakhouses) {
Point p = new Point();
p.setLocation(0, 0);
Map<Integer, Point> map = new TreeMap<>();
for (int i = 0; i < point.length; i++) {
if (i + 1 <= point.length) {
int distanceSq = (int) point[i].distanceSq(p);
map.put(distanceSq, point[i]);
}
}
for (Entry<Integer, Point> entry : map.entrySet()) {
System.out.println((int) entry.getValue().getX() + " " + (int) entry.getValue().getY());
}
return null;
}
public static void main(String[] args) {
Solution s = new Solution();
int[] a = { -3, 0, 199 };
List<Integer> b = new ArrayList();
b.add(1);
b.add(-3);
List<Integer> c = new ArrayList();
c.add(1);
c.add(2);
List<Integer> d = new ArrayList();
d.add(1);
d.add(4);
List<Integer> e = new ArrayList();
e.add(2);
e.add(7);
List<List<Integer>> r = new ArrayList<>();
r.add(b);
r.add(c);
r.add(d);
r.add(e);
List<List<Integer>> nearestXsteakHouses = s.nearestXsteakHouses(4, r, 3);
System.out.println(nearestXsteakHouses);
}
}
我已经设法以这种格式打印值,但这不是我想要的:
[[1, 2, 1, -3, 1, 4]]
发布于 2018-10-25 05:53:42
不要偷懒;使用嵌套的for循环来打印列表,而不是简单的print语句。
https://stackoverflow.com/questions/52977942
复制相似问题