ArrayList<Integer> initgenome = new ArrayList<Integer>(Collections.nCopies(4990, 0));
array_unshift(initgenome, 10, 1);
我是java新手。我正在尝试构建一个5,000基因的基因组。我希望4990个基因的基因为0,前10个基因的基因为1。我在网上看,我发现一个网站说array_unshift会将我想要的任何东西移到数组的前面。我不知道如何检查这段代码是否真的将10个1推到阵列前面,或者它是刚开始时有很多10秒和很多1?这段代码实际上是告诉数组只将10个1放在ArrayList的开头吗?
答案 0 :(得分:1)
我认为您正在寻找的是:
ArrayList.addAll(int index, Collection<? extends E> c)
这会在列表中添加您想要的内容,同时注意不删除任何元素。
参考:https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html 所以你可以这样做:
List<Integer> myList = new ArrayList<>();
//Now, Add all the numbers you want in myList
然后将这个集合预先添加到你的initgenome中:
initgenome.add(0, myList);
答案 1 :(得分:0)
以下是创建列表的有效方法:
// Create your list with a proper initial capacity
List<Integer> initgenome = new ArrayList<>(5_000);
// Add the 10 first values
initgenome.addAll(Collections.nCopies(10, 1));
// Add the rest
initgenome.addAll(Collections.nCopies(4990, 0));