Java 链表参考
如何获取链表中的数据引用/索引 e、 g.如果我有这个链表Java 链表参考,java,list,linked-list,Java,List,Linked List,如何获取链表中的数据引用/索引 e、 g.如果我有这个链表 java.util.List<Polygon> triangles = new LinkedList<Polygon>(); polygon triangle, selectedTriangle; Point startDrag,endDrag,midPoint; .... triangles.add( new Polygon(xs, ys,3)); java.util.List triangles
java.util.List<Polygon> triangles = new LinkedList<Polygon>();
polygon triangle, selectedTriangle;
Point startDrag,endDrag,midPoint;
....
triangles.add( new Polygon(xs, ys,3));
java.util.List triangles=new LinkedList();
多边形三角形,选择三角形;
点起点、终点、中点;
....
添加(新多边形(xs,ys,3));
e、 g.如何将多边形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; //
}
}
.....
}
java.util.List triangles=new LinkedList();
多边形三角形,选择三角形;
....
添加(新多边形(xs,ys,3));
.....
公共无效鼠标按下(MouseEvent e){
....
startDrag=新点(e.getX(),e.getY());
endDrag=startDrag;
对于(多边形p:三角形){
如果(p.contains(startDrag)){//三角形内部
//我不知道如何将所选三角形设置为与现有三角形相同
selectedTriangle=三角形。indexOf(p.contains(startDrag));
中断//
}
}
.....
}
假设多边形
覆盖等于
适当,您可以使用:
int index = triangles.indexOf(desiredTriangle);
请注意,将索引与链表一起使用效率相对较低,因为获取任何特定索引都意味着将整个列表从标题移动到该索引
LinkedList
不提供用于查找第一个相等元素的API,但您可以使用indexOf
后跟get
(需要两个过程)或编写自己的findFirst
方法,如下所示:
public static <T> T findFirst(Iterable<? extends T> collection, T value)
{
for (T t : collection)
{
if (t.equals(value))
{
return t;
}
}
return null;
}
publicstatictfindfirst(Iterable假设Polygon
适当地覆盖equals
,您可以使用:
int index = triangles.indexOf(desiredTriangle);
请注意,将索引与链表一起使用效率相对较低,因为获取任何特定索引都意味着将整个列表从标题移动到该索引
LinkedList
不提供用于查找第一个相等元素的API,但您可以使用indexOf
后跟get
(需要两个过程)或编写自己的findFirst
方法,如下所示:
public static <T> T findFirst(Iterable<? extends T> collection, T value)
{
for (T t : collection)
{
if (t.equals(value))
{
return t;
}
}
return null;
}
publicstatict findFirst(Iterable根据您的确切意思,我建议使用get或indexOf方法。您可以在Java API中看到它们各自的作用:
基本上get接受一个数字并返回该索引处的对象。IndexOf接受一个对象并返回找到它的第一个索引(如果找不到,则返回-1)。根据您的确切意思,我建议使用get或IndexOf方法。您可以在Java API中看到它们各自的作用:
基本上get接受一个数字并返回该索引处的对象。IndexOf接受一个对象并返回找到它的第一个索引(如果找不到,则返回-1)