繁体   English   中英

Java用子列表替换列表

[英]java replace list with sublist

我有一个清单

ArrayList list = new ArrayList(Arrays.asList(1,2,3,4,5,3,4,2,4,5,3,10));

我还有另一个子列表

ArrayList sublist = new ArrayList(Arrays.asList(4,5,3));

我一直在寻找替换列表中子列表的功能

与另一个子列表

ArrayList sublist = new ArrayList(Arrays.asList(100,100)));

因此,在查找并替换之后,新列表应变为:

list = (1,2,3,100,100,4,2,100,100,10);

我在Java中找不到针对此API的任何API。

不知道是否存在执行此操作的任何api,但是您可以做的是利用Java中的List接口。

如果合并使用containsAll(Collection c)如果此列表包含指定集合的​​所有元素,则返回true。

removeAll(Collection c)从此列表移除指定集合中包含的所有元素(可选操作)。

addAll(int index,Collection c)将指定集合中的所有元素插入此列表中的指定位置(可选操作)。

我认为您可以轻松完成所需的工作。

在这里看看: http : //download.oracle.com/javase/6/docs/api/java/util/List.html

如果创建子列表作为一个真正的子列表list ,如使用List#subList()然后(非结构性),以便所做的更改sublist将反映在list

List<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5, 3, 4, 2, 4, 5, 3, 10);
List<Integer> sublist = list.subList(3, 6);

for (int i=0; i<sublist.size(); i++)
{
    sublist.set(i, 100);
}

System.out.println(sublist);
// prints 100, 100, 100
System.out.println(list);
// prints 1, 2, 3, 100, 100, 100, 4, 2, 4, 5, 3, 10

演示: http//ideone.com/ljvd0


Lists.newArrayList(...)来自Google Guava

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM