我用成对的图像进行小型游戏,而不需要成对,因此我陷入了合并它们所对象的所有LinkedList都是拥有构造函数的类的麻烦。他们存储x,y和裁剪的img。当节点不起作用时,我可以做些什么来将此列表合并为一个。我的目标是拥有一个LinkedList,将其在框架上随机播放。
我得到了
以及我想达到的目标
不能用addAll做到这一点,因为我很少有LinkedList引用不同的类。每个类都有不同的img和动画。
private LinkedList<Odkryte00> os = new LinkedList<Odkryte00>();
private LinkedList<Odkryte01> os2 = new LinkedList<Odkryte01>();
private LinkedList<Odkryte02> os3 = new LinkedList<Odkryte02>();
private LinkedList<Odkryte03> os4 = new LinkedList<Odkryte03>();
private LinkedList<Odkryte04> os5 = new LinkedList<Odkryte04>();
private LinkedList<Odkryte05> os6 = new LinkedList<Odkryte05>();
答案 0 :(得分:1)
听起来您想将多个LinkedList合并在一起,并随机组合列表中的项目,以便可以在显示的图像中随机排列木板的各个部分。这在Java中非常容易实现,并且已经有内置的方法可以使用Collections来实现。
注意到您的更新
您希望将各种类型的对象的LinkedList作为最终列表,使用 addAll()仍很可能完成此操作,只需要对我显示的内容进行一些编辑即可较早。
为此,我们返回:
LinkedList<Object>
从我之前放在一起的 combineAndShuffle()方法开始,像这样:
import java.util.Collections;
import java.util.LinkedList;
public class Test{
@SafeVarargs
public static LinkedList<Object> combineAndShuffle(LinkedList<?>... l){
//must be <Object> because it needs to hold multiple types of objects
LinkedList<Object> finalList = new LinkedList<>();
//use <?> wildcard because we are unsure what value we will hit
for(LinkedList<?> list: l) {
finalList.addAll(list);
}
//shuffle the list
Collections.shuffle(finalList);
return finalList;
}
public static void main(String [] args){
//list of strings
LinkedList<String> listA = new LinkedList<>();
listA.add("One");
listA.add("Two");
//list of integers, so a different class type
LinkedList<Integer> listB = new LinkedList<>();
listB.add(3);
listB.add(4);
LinkedList<Object> combinedList = combineAndShuffle(listA, listB);
for(Object item: combinedList)
System.out.println(item);
}
}