У меня есть следующий код, который используется для сортировки древовидной карты из значений Point, переданных из List<Integers>
, я присвоил эти значения Point, затем поместил его в карту, после сортировки карты я хочу назначить значения вa 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]]