Ich habe zwei ArrayList
s von gleicher Größe. Liste 1 besteht aus 10 Namen und Liste 2 besteht aus ihren Telefonnummern.Wie werden zwei ArrayLists zusammengefasst?
Ich möchte die Namen und die Nummer in eine ArrayList
concat. Wie mache ich das?
Ich habe zwei ArrayList
s von gleicher Größe. Liste 1 besteht aus 10 Namen und Liste 2 besteht aus ihren Telefonnummern.Wie werden zwei ArrayLists zusammengefasst?
Ich möchte die Namen und die Nummer in eine ArrayList
concat. Wie mache ich das?
Sie verwenden können .addAll()
füge die Elemente der zweiten Liste zu der ersten hinzu:
array1.addAll(array2);
Bearbeiten: Basierend auf Ihrer obigen Erklärung ("Ich möchte eine einzelne Zeichenfolge in der neuen Arraylist, die sowohl Name und Nummer hat. „), würden Sie eine Schleife durch die erste Liste wollen und das Element aus der zweiten Liste anhängen
Etwas wie folgt aus:.
array1 : ["a", "b", "c"]
array2 : ["1", "2", "3"]
:
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
}
Wenn Sie setzen in
Sie erhalten:
array3 : ["a 1", "b 2", "c 3"]
Sie können die Größe von 'array3' angeben. d. h. 'new ArrayList
fügen Sie eine Arraylist zweite Arraylist als:
Arraylist1.addAll(Arraylist2);
EDIT: wenn Sie von zwei neuen Arraylist erstellen Arraylist vorhandene dann tun, wie:
ArrayList<String> arraylist3=new ArrayList<String>();
arraylist3.addAll(Arraylist1); // add first arraylist
arraylist3.addAll(Arraylist2); // add Second arraylist
Die Nummern werden nach den Namen angezeigt, ich möchte die Namen und Nummern nebeneinander. Kannst du mir bitte helfen? – Anirudh
@anirudhmaddy: ok du willst beide name + nummer in neuer arraylist bei gleichem index? –
ArrayList<String> resultList = new ArrayList<String>();
resultList.addAll(arrayList1);
resultList.addAll(arrayList2);
One ArrayList1 auf Daten hinzufügen,
mArrayList1.add(data);
und Zweite ArrayList2 andere Daten hinzuzufügen,
mArrayList2.addAll(mArrayList1);
var arr3 = new arraylist();
for(int i=0, j=0, k=0; i<arr1.size()+arr2.size(); i++){
if(i&1)
arr3.add(arr1[j++]);
else
arr3.add(arr2[k++]);
}
wie Sie sagen, "die Namen und Nummern nebeneinander".
für eine leichte Liste, die nicht die Einträge kopiert, können Sie etw wie folgt verwenden:
List<Object> mergedList = new ConcatList<>(list1, list2);
hier die Umsetzung:
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;
}
}
was von Concat bedeuten haben Sie genau? Erstellen Sie eine neue Liste mit 10 Elementen, die Name und Nummer enthalten? – Henry
Ich möchte eine einzelne Zeichenfolge in der neuen Arraylist, die sowohl Name und Nummer hat. – Anirudh