说有一个数字列表。添加有什么区别
add(int index, Object x)
并将对象设置为列表
set(int index, Object x)
。
他们基本上不做同样的事吗?这两种功能都不只是添加了
Object x
到指定的索引?
答案 0 :(得分:3)
答案 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);
}
尝试设置,如果它返回该特定错误,请改为添加。