2个方法的结果怎么不一样 能帮说明一下么?

wazya 2008-02-17 10:38:32
public void sublist()
{
List<String> list = new ArrayList<String>();
for(int i = 0;i<10;i++)
{
list.add("ddd"+i);
}
list.add(3,"yuxiakun");
List<String> list2 = new ArrayList();

list2.addAll(list.subList(1, 3));

// 这个输出的结果怎么不是 asd???
System.out.println(list2.set(0, "asd"));
}

public void sublist1()
{
List<String> list = new ArrayList<String>();
for(int i = 0;i<10;i++)
{
list.add("ddd"+i);
}
list.add(3,"yuxiakun");


list.subList(1, 3).set(0, "ssssssssssssssssssss");
System.out.println(list.subList(1, 3).set(0, "ssssssssssssssssssss"));
}
...全文
67 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyo100900 2008-02-17
  • 打赏
  • 举报
回复
请看ArrayList的API,注意红色部分:

public E set(int index,
E element)用指定的元素替代此列表中指定位置上的元素。

指定者:
接口 List<E> 中的 set
覆盖:
类 AbstractList<E> 中的 set
参数:
index - 要替代的元素的索引
element - 存储在指定位置上的元素
返回:
以前位于该指定位置上的元素

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




62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧