JAVA对象索引对象_在指定的索引处将对象添加到ArrayList

问题

我认为这是一个相当简单的问题,但我无法弄清楚如何正确地做到这一点。

我有一个空的arraylist:

ArrayList list = new ArrayList();

我有一些我想要添加的对象,每个对象都必须处于某个位置。然而,有必要以每种可能的顺序添加它们。当我尝试这个,它不起作用,我得到了一个IndexOutOfBoundsException:

list.add(1, object1)

list.add(3, object3)

list.add(2, object2)

我所尝试的是填充ArrayListwithnull,然后执行上述操作。它有效,但我认为这是一个可怕的解决方案。还有另一种方法吗?

#1 热门回答(182 赞)

你可以这样做:

list.add(1, object1)

list.add(2, object3)

list.add(2, object2)

将object2添加到位置2后,它会将object3移动到位置3。

如果你希望object3始终位于position3,我建议你使用HashMap,其中position是key,object是value。

#2 热门回答(22 赞)

你可以使用Array对象并将其转换为ArrayList-

Object[] array= new Object[10];

array[0]="1";

array[3]= "3";

array[2]="2";

array[7]="7";

List list= Arrays.asList(array);

ArrayList将是 - [1,null,2,3,null,null,null,7,null,null]

#3 热门回答(15 赞)

如果是这种情况,那么为什么不考虑使用常规数组,初始化容量并将对象放在所需的索引处。

Object[] list = new Object[10];

list[0] = object1;

list[2] = object3;

list[1] = object2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值