如何在偶数或奇数位置向ArrayList添加元素?

时间:2013-04-06 10:43:08

标签: java

我有两个方法填充一个ArrayList,我希望其中一个方法在偶数位置添加元素,而另一个方法在奇数位置添加元素,这样我就得到一个交错的数据列表。

如何在偶数或奇数位置添加元素?

for (int i = 0; i < mData.size(); i++) {
     myList.add( ,mData.get(i))
{

澄清。我不需要偶数或奇数列表,我需要从for循环中的变量i获取下一个偶数或奇数。即imdata.size()仅在偶数位置存储元素,即使它超过mData的大小

5 个答案:

答案 0 :(得分:1)

Lists是具有动态分配大小的结构,因此很难精确地放置在奇数或偶数位置。你添加元素,大小是1,添加第二,大小是2等。 您可以使用“synchronized”方法按特定顺序向List添加元素。一种方法将首先开始,将在位置0,2,4等处添加元素,而第二种方法在1,3,5等处。

但我不认为List是正确的结构。如果要将项目精确地添加到奇数或偶数位置,请选择具有固定大小的结构,即经典数组,填充数组,然后您可以将其转换为动态列表(如果您需要在某处传递/发送完成列表)。

答案 1 :(得分:0)

你可以这样做 使用模运算符

  if (i % 2 != 0)
        { 



        }

答案 2 :(得分:0)

if(i % 2) == 0然后i是偶数。否则,i是奇数。

%运算符返回两个数字的余数,例如:

5 % 2为1,但4 % 2为0.

模数可能很慢,在你的情况下i是整数,所以你可以这样做:

if (x & 1 == 0) {
   Even
}

答案 3 :(得分:0)

使用以下代码会更好:

    public static boolean isEven(int i) {
    return (i & 1) == 0;
}

答案 4 :(得分:-1)

这个shure启动一个ConcurrentModificationException,你不能修改一个List(除了它是一个同步列表,如列表和Fujaba库提供的其他集合),而你正在通过它的索引遍历它。我建议你首先克隆List(克隆,不再引用List),遍历克隆,使用Darshan建议的模运算符,并从原始List中删除值。