Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在保持可伸缩性的同时,如何记录多个对象的位置?_Java_List - Fatal编程技术网

Java 在保持可伸缩性的同时,如何记录多个对象的位置?

Java 在保持可伸缩性的同时,如何记录多个对象的位置?,java,list,Java,List,我试图让三个不同的“列表”对象一起工作 总而言之,我试图保存三个不同的变量,但它们都可以一起访问 如果我说: void main() { addStuff(1, 12, true); } void updateStuff(int i1, int i2, boolean b1) { list1.add(i1); list2.add(i2); list3.add(i3); } 然后保存三个相应的值 现在,我如何在仍然支持从列表中删除元素的情况下检索这些变量(也就是说

我试图让三个不同的“列表”对象一起工作

总而言之,我试图保存三个不同的变量,但它们都可以一起访问

如果我说:

void main() {
    addStuff(1, 12, true);
}
void updateStuff(int i1, int i2, boolean b1) {
    list1.add(i1);
    list2.add(i2);
    list3.add(i3);
}
然后保存三个相应的值

现在,我如何在仍然支持从列表中删除元素的情况下检索这些变量(也就是说,如果我从每个列表中删除一个元素,即相互对应的元素)

如果我没有解释清楚,我会道歉的。如果需要的话,我很乐意提供更多的细节


谢谢

您可能应该创建一些包含这两个整数和一个布尔值的类

然后您可以有一个
列表


这样,您就不必担心在添加/删除元素时同步列表,因为您只有一个列表。

您可能应该创建一些包含这两个int和一个boolean的类

然后您可以有一个
列表


这样,您就不必担心在添加/删除元素时同步列表,因为您只有一个列表。

好吧,如果我从您对Eran答案的评论中了解到您想要做什么(最好就您的问题提供此信息,以便更多人可以帮助您),在笛卡尔平面上有一堆点,必须检查一个点是否离另一个太近。 为了避免每次需要这些信息时都需要进行大量检查,您需要将其存储在某种数据结构中,该数据结构将在每次插入新点时更新。 对吗

如果是,您可以创建表示此信息的图形:

public class MyPoints {
    private List<Point> points = new ArrayList<>();

    private List<List<Boolean>> tooCloseGraph = new ArrayList<>();

    public void addPoint(Point point){
        List<Boolean> newLine = new ArrayList<>();
        for(Point p : points){
            newLine.add(p.isTooClose(point));
        }
        newLine.add(true) //Assuming a point is too close to itself
        tooCloseGraph.add(newLine);
        points.add(point);
    }

    public boolean isTooClose(int a, int b){
        if(a > b)
            return tooCloseGraph.get(a).get(b);
        else
            return tooCloseGraph.get(b).get(a);
    }

    public boolean isTooClose(Point a, Pont b){
        return isTooClose(points.indexOf(a), points.indexOf(b));
    }
}
公共类MyPoints{
私有列表点=新的ArrayList();
私有列表tooCloseGraph=newArrayList();
公共无效添加点(点-点){
List newLine=new ArrayList();
对于(点p:点){
换行符.add(p.isTooClose(point));
}
newLine.add(true)//假设一个点离它自己太近
tooCloseGraph.add(换行符);
点。添加(点);
}
公共布尔IstoClose(int a,int b){
如果(a>b)
返回到closegraph.get(a)和get(b);
其他的
返回到closegraph.get(b)get(a);
}
公共布尔ISTOCLOSE(点a,桥b){
返回ISTOCOCLOSE(a点索引,b点索引);
}
}
我还没有测试过,但我认为它是有效的


干杯

好吧,如果我从你对Eran答案的评论中理解了你想要做什么(就你的问题提供这些信息以便更多的人可以帮助你可能是个好主意),你在笛卡尔平面上有很多点,必须检查一个点是否太接近另一个点。 为了避免每次需要这些信息时都需要进行大量检查,您需要将其存储在某种数据结构中,该数据结构将在每次插入新点时更新。 对吗

如果是,您可以创建表示此信息的图形:

public class MyPoints {
    private List<Point> points = new ArrayList<>();

    private List<List<Boolean>> tooCloseGraph = new ArrayList<>();

    public void addPoint(Point point){
        List<Boolean> newLine = new ArrayList<>();
        for(Point p : points){
            newLine.add(p.isTooClose(point));
        }
        newLine.add(true) //Assuming a point is too close to itself
        tooCloseGraph.add(newLine);
        points.add(point);
    }

    public boolean isTooClose(int a, int b){
        if(a > b)
            return tooCloseGraph.get(a).get(b);
        else
            return tooCloseGraph.get(b).get(a);
    }

    public boolean isTooClose(Point a, Pont b){
        return isTooClose(points.indexOf(a), points.indexOf(b));
    }
}
公共类MyPoints{
私有列表点=新的ArrayList();
私有列表tooCloseGraph=newArrayList();
公共无效添加点(点-点){
List newLine=new ArrayList();
对于(点p:点){
换行符.add(p.isTooClose(point));
}
newLine.add(true)//假设一个点离它自己太近
tooCloseGraph.add(换行符);
点。添加(点);
}
公共布尔IstoClose(int a,int b){
如果(a>b)
返回到closegraph.get(a)和get(b);
其他的
返回到closegraph.get(b)get(a);
}
公共布尔ISTOCLOSE(点a,桥b){
返回ISTOCOCLOSE(a点索引,b点索引);
}
}
我还没有测试过,但我认为它是有效的


干杯

似乎你正在尝试使用并行数组(或者在本例中是列表),其中一个对象列表可能更合适。是的,普遍的共识似乎是这样的。我来试一试,谢谢!似乎你正在尝试使用并行数组(或者在本例中是列表),其中一个对象列表可能更合适。是的,普遍的共识似乎是这样的。我来试一试,谢谢@DavidCa1226您的评论毫无意义,因为同样的限制也适用于您的客户lists@DavidCa1226你的评论毫无意义,因为同样的限制也适用于你的列表