int length = array1.size();
if (length != array2.size()) { // Too many names, or too many numbers
// Fail
}
ArrayList<String> array3 = new ArrayList<String>(length); // Make a new list
for (int i = 0; i < length; i++) { // Loop through every name/phone number combo
array3.add(array1.get(i) + " " + array2.get(i)); // Concat the two, and add it
}
List<Object> mergedList = new ConcatList<>(list1, list2);
这里的实现方式是:
public class ConcatList<E> extends AbstractList<E> {
private final List<E> list1;
private final List<E> list2;
public ConcatList(final List<E> list1, final List<E> list2) {
this.list1 = list1;
this.list2 = list2;
}
@Override
public E get(final int index) {
return getList(index).get(getListIndex(index));
}
@Override
public E set(final int index, final E element) {
return getList(index).set(getListIndex(index), element);
}
@Override
public void add(final int index, final E element) {
getList(index).add(getListIndex(index), element);
}
@Override
public E remove(final int index) {
return getList(index).remove(getListIndex(index));
}
@Override
public int size() {
return list1.size() + list2.size();
}
@Override
public void clear() {
list1.clear();
list2.clear();
}
private int getListIndex(final int index) {
final int size1 = list1.size();
return index >= size1 ? index - size1 : index;
}
private List<E> getList(final int index) {
return index >= list1.size() ? list2 : list1;
}
}
8条答案
按热度按时间vddsk6oq1#
可以使用
.addAll()
将第二个列表中的元素添加到第一个列表中:大概是这样的
如果您输入:
您将获得:
63lcw9qa2#
将一个数组列表添加到第二个数组列表,如下所示:
**EDIT:**如果您想从两个现有的数组列表创建新的数组列表,请执行以下操作:
pcww981p3#
如果你想只做一行,并且不想改变list1或list2,你可以使用stream
v6ylcynt4#
对于不复制条目的轻量级列表,您可以使用类似于以下的语句:
这里的实现方式是:
djp7away5#
9w11ddsr6#
一个ArrayList1添加到数据,
第二数组列表2添加其他数据,
vhmi4jdf7#
如你所说,“名字和数字并排排列”。
zlhcx6iw8#
1:可以使用addAll()
2:可以使用循环: