Java .get函数如何使用ArrayList,该索引是否变为空?

Java .get函数如何使用ArrayList,该索引是否变为空?,java,arraylist,imageview,vbox,hbox,Java,Arraylist,Imageview,Vbox,Hbox,我正在写一个有ImageView搜索列表的程序。我正在使用.get从一个arraylist中取出一个骰子图像视图,并将其添加到另一个arraylist中,该arraylist将显示选中的所有骰子。我很困惑,因为使用.get是否会将其从原始Arraylist中删除 在我上面的代码中,Dicingame ArrayList已经添加了6个图像视图骰子。我随机选择一个并将其添加到我的rolledhand数组列表中5次。当我尝试输出rolledhand的相同索引时,我的场景中只显示一个,而不是两个相同的索

我正在写一个有ImageView搜索列表的程序。我正在使用.get从一个arraylist中取出一个骰子图像视图,并将其添加到另一个arraylist中,该arraylist将显示选中的所有骰子。我很困惑,因为使用.get是否会将其从原始Arraylist中删除

在我上面的代码中,Dicingame ArrayList已经添加了6个图像视图骰子。我随机选择一个并将其添加到我的rolledhand数组列表中5次。当我尝试输出rolledhand的相同索引时,我的场景中只显示一个,而不是两个相同的索引

我不是想把它拿走。我之所以这么问,是因为出于某种原因,如果两个骰子都来自DicingName中的同一位置,我的程序将不会显示它们。

ArrayListget不会删除任何内容。它只获取元素:

公共E-getint索引

返回此列表中指定位置的元素

如果要在某个位置获取并删除图元,请改用ArrayListMove:

公共电子删除索引

删除此列表中指定位置的元素。将任何后续元素向左移动会从其索引中减去一个

或者,如果要弹出元素get并删除第一个/最后一个元素,请使用Queue或Stack

[编辑] 关于您的问题,根据ImageView继承的文档,视图上只显示一个元素:

在场景图中的任何位置,节点最多只能出现一次。具体地说,节点在以下所有情况中只能出现一次:作为场景的根节点、父节点的子节点列表或节点的剪辑

如果程序将子节点添加到父节点(包括组、区域等),并且该节点已经是其他父节点的子节点或场景的根节点,则该节点将自动且静默地从其前父节点移除


不,只是得到,不要移除任何东西。你得到你问题的答案了吗?任何反馈都会对其他读者有所帮助。如果您从列表中删除该元素,您可能还应该将参数的值减少到nextInt6im不尝试删除它。我只是想知道,为什么我第二次尝试从滚动的手中输出相同的索引时,它不起作用。@PaulAnthonyMorillo,因为根据文档,节点在场景图中的任何位置最多出现一次。请查看更新的答案。是否有其他复制方法@Andreas@PaulAnthonyMorillo您应该使用相同的图像src实例化另一个ImageView。好了,没有其他正式的方式了。
ArrayList<ImageView> rolledhand=new ArrayList<>(5);
    Random rand = new Random();
    for(int i=0;i<5;i++)
    {
        int randomNum = rand.nextInt(6);
        rolledhand.add(diceingame.get(randomNum));
    }

    VBox diceRolled1=new VBox(rolledhand.get(0));
    VBox diceRolled2=new VBox(rolledhand.get(0));