将对象添加到列表

时间:2014-03-18 23:09:50

标签: java

说有一个数字列表。添加有什么区别  add(int index, Object x)

并将对象设置为列表  set(int index, Object x)。  他们基本上不做同样的事吗?这两种功能都不只是添加了 Object x  到指定的索引?

3 个答案:

答案 0 :(得分:3)

set替换,add将索引后的所有内容推回索引。

答案 1 :(得分:1)

设置覆盖index位置的值,添加扩展数组中的值(保留旧值)并将新值放入index位置。

答案 2 :(得分:1)

来自文档http://docs.oracle.com/javase/7/docs/api/java/util/List.html

  

add(int index,E element)   将指定元素插入此列表中的指定位置(可选操作)。

     

set(int index,E element)   用指定的元素替换此列表中指定位置的元素   (可选操作)。

所以没有。他们不做同样的事情。 add补充道。 set替换现有元素。

如果索引中没有元素,则set将返回错误:

  

IndexOutOfBoundsException - 如果索引超出范围(索引< 0 || index> = size())

因此,您可以尝试两者:

try
{
   list.set(index, obj);
}
catch(IndexOutOfBoundsException ex)
{
   list.add(index, obj);
}

尝试设置,如果它返回该特定错误,请改为添加。