gpt4 book ai didi

Java特殊数组补顶/覆盖

转载 作者:行者123 更新时间:2023-12-01 11:37:28 27 4
gpt4 key购买 nike

我想要高于定义的数组。它存储点及其坐标。

public static List<Edge> simpleGraph(List<Point> nodes) {
int numEdges = nodes.size() * 2;
List<Edge> edges = new ArrayList<Edge>(numEdges);
for (int i = 0; i < numEdges; i++) {
Point p1 = nodes.get((int) (Math.random() * nodes.size()));
Point p2 = nodes.get((int) (Math.random() * nodes.size()));
edges.add(new Edge(p1, p2));
}

for (int i = 0; i < edges.size(); i++) {
Edge e = edges.get(i);
if (e.p1.equals(e.p2))
edges.remove(i);
}

for (int i = 0; i < edges.size(); i++) {
Edge e = edges.get(i);
for (int q = 0; q < edges.size(); q++) {
if (i == q)
continue;
Edge e2 = edges.get(q);
if (e.equals(e2))
edges.remove(q);
}
}

return edges;
}

我在整数列表中有固定数量的元素,并且想要用我自己的列表中的值覆盖原始(上面生成的)整数。

可以通过以下方式访问值:

System.out.println (
"x1 " + e.p1.x + " y1 " + e.p1.y +
" x2 " + e.p2.x + " y2 " + e.p2.y
);

我尝试使用简单的 for 迭代,但多次覆盖每个值。

最佳答案

据我了解,您想要替换每条边的每个点的坐标。这些坐标存储在列表中。

List<Integer> myCoordinates; 

// initalize myCoordinates so it has
// edges.size()*points_per_edge*coordinates_per_point elements
// = edges.size() * 2 * 2 in your case

for (int i = 0; i < edges.size(); i++) {
int j = i*4;
Edge edge = edges.get(i);
edge.p1.x = myCoordinates.get(j);
edge.p1.y = myCoordinates.get(j+1);
edge.p2.x = myCoordinates.get(j+2);
edge.p2.y = myCoordinates.get(j+3);
}

关于Java特殊数组补顶/覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822211/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com