gpt4 book ai didi

java - 列表链表引用

转载 作者:行者123 更新时间:2023-12-01 17:40:27 24 4
gpt4 key购买 nike

如何获取链表中的数据引用/索引?

例如如果我有这个链接列表

java.util.List<Polygon> triangles = new LinkedList<Polygon>();

polygon triangle, selectedTriangle;
Point startDrag,endDrag,midPoint;
....

triangles.add( new Polygon(xs, ys,3));

例如如何将 Polygon selectedTriangle 设置为与链接数组列表中现有三角形之一相同?

编辑:

java.util.List<Polygon> triangles = new LinkedList<Polygon>();
polygon triangle, selectedtriangle;
....

triangles.add( new Polygon(xs, ys,3));
.....

public void mousePressed(MouseEvent e) {
....
startDrag = new Point(e.getX(), e.getY());
endDrag = startDrag;

for (Polygon p : triangles) {
if (p.contains(startDrag)) {//inside triangle

//I dont know how to set the selectedTriangle as the same with existing triangle
selectedTriangle = triangles.indexOf(p.contains(startDrag));
break; //
}
}
.....

}

最佳答案

假设Polygon适本地覆盖equals,您可以使用use:

int index = triangles.indexOf(desiredTriangle);

请注意,使用链表索引的效率相对较低,因为访问任何特定索引意味着从头到该索引遍历整个列表。

LinkedList 不提供 API 来查找第一个相等的元素,但您可以使用 indexOf 后跟 get (需要两个Pass) 或编写您自己的 findFirst 方法,如下所示:

public static <T> T findFirst(Iterable<? extends T> collection, T value)
{
for (T t : collection)
{
if (t.equals(value))
{
return t;
}
}
return null;
}

(如果需要,可以进行适当的空检查。)

关于java - 列表链表引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1490699/

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