0

I am having three arraylist,Here I have to concatenate 2 arraylist and display it into third arraylist.My coding is given below,

Coding::

List<String> firstName  = new ArrayList<String>();
List<String> lastName  = new ArrayList<String>();
         /////inserting first name
         String string1 = "aaa";
         firstName.add(string1);
         String string2 = "bbb";
         firstName.add(string2);
         ///////inserting last name
         String string3 = "yyy";
         lastName.add(string3);
         String string4 = "zzz";
         lastName.add(string4);

 /////////first name 
        Iterator<String> iterator = firstName.iterator();
        while(iterator.hasNext()){
         String FirstName = iterator.next();
         System.out.println(" FirstName   "+FirstName);
        }
 //////////////last name
        Iterator<String> iterator1 = lastName.iterator();
        while(iterator1.hasNext()){
         String LastName = iterator1.next();
         System.out.println(" LastName  "+LastName);
        }
List<String> name=new ArrayList<String>();
        ///////////name=firstname+lastname
        Iterator<String> iterator11 = lastName.iterator();
        while(iterator11.hasNext()){
         name=firstName+lastName;///////here getting error
               ////////////what should I do here to add two arraylist<String> value
         System.out.println(" Name = FirstName+LastName  "+name);
        }

Output I want::

FirstName   aaa
FirstName   bbb
LastName  yyy
LastName  zzz
Name = FirstName+LastName aaayyy
Name = FirstName+LastName bbbzzz

But I dont know how to concatenate two arrayList and display it in the third arrayList,Please help me.. thanks in advance ..

6 Answers 6

7

If the lists have equal size, you can iterate them together:

Iterator<String> iterator = firstName.iterator();
Iterator<String> iterator1 = lastName.iterator();

while(iterator.hasNext() && iterator1.hasNext()){
    String FirstName = iterator.next();
    String LastName = iterator1.next();
    // add FirstName and LastName to the new list here
}

UPDATE

Iterator<String> iterator = firstName.iterator();
Iterator<String> iterator1 = lastName.iterator();
List<String> newList = new ArrayList<String>();

while(iterator.hasNext() && iterator1.hasNext()){
    String FirstName = iterator.next();
    String LastName = iterator1.next();
    newList.add(FirstName + " " + LastName);
}
Sign up to request clarification or add additional context in comments.

5 Comments

didactic +1 for not including the complete solution
I am getting output like [aaa, bbb, yyy, zzz], but i need output like aaayyy bbbzzz
newList.add(FirstName + " " + LastName);
I am not getting output like aaayyy bbbzzz,getting error that FirstName FirstName not decleared, whgile i used newList.add(FirstName + " " + LastName); where i have to code.. little confusion over here.. thanks in advance
OK, I've updated my answer with the bits you're struggling with.
4
List<String> newList = new ArrayList<String>(firstName);
newList.addAll(lastName);

newList will contain elements from firstName and LastName

EDIT: Above code is concatenating the two list, adding lastname at the end of firstname list. If length of your lists are same then you can try:

List<String> newList = new ArrayList<String>();
for(int i=0;i<fistName.length();i++)
{
    newList.Add(firstName.get(i)+lastName.get(i));
}

Iterator<String> iter = newList.iterator();
while(iter.hasNext()){
    System.out.println(" Name = FirstName+LastName  "+iter.next());
    }

This will give you the list you want.

3 Comments

I am getting output like [aaa, bbb, yyy, zzz], but i need output like aaayyy bbbzzz
@user1443848, opyate, answer is correct, I read your title of the question and replied, Its concatenating the two list, adding lastname at the end of first name, that is why you are getting this error.
I am getting error like first name not declared, even though i declared it as arraylist
1

You should do it by loop.

List<String> name=new ArrayList<String>();
for(i=0;i<firstname.length()&&i<lastname.length();i++){
    name.add(firstname.get(i) + lastname.get(i));
}

Comments

0

So you really want to create a list of strings formed by the pair-wise concatenation of the elements of two other lists.

The simplest way is just to write a loop;

 ArrayList<String> l1 = ...
 ArrayList<String> l2 = ...
 ArrayList<String> l3 = new ArrayList<String>(l1.size());
 for (int i =- 0; i < l3.size(); i++) {
     l3.add(l1.get(i) + l2.get(i));
 }

This assumes that l1 and l2 have the same length. (Note: I'm deliberately using the list implementation class in the declarations here, because this code is only appropriate if you are using an ArrayList. For a LinkedList you need to use the list iterators because get(i) is expensive.)

1 Comment

Dude isn't for loops of that style for iteration gone now? Its for..each era!!
0
public static void main(String[] args) {

    List<String> firstName = new ArrayList<String>();
    List<String> lastName = new ArrayList<String>();
    String string1 = "aaa";
    firstName.add(string1);
    String string2 = "bbb";
    firstName.add(string2);
    // /////inserting last name
    String string3 = "yyy";
    lastName.add(string3);
    String string4 = "zzz";
    lastName.add(string4);

    Iterator<String> iterator = firstName.iterator();
    Iterator<String> iterator1 = lastName.iterator();
    List<String> name = new ArrayList<String>();


    while (iterator.hasNext()&& iterator1.hasNext() ) {

        name.add(iterator.next()+" "+iterator1.next());
    }

    Iterator<String> iterator11 = name.iterator();
    while(iterator11.hasNext())
        System.out.println(iterator11.next());

}

Comments

0
ArrayList<String> fname=new ArrayList<String>();
fname.add("deepak");
fname.add("avinash");
fname.add("amit");
ArrayList<String> lname=new ArrayList<String>();
lname.add("goswami");
lname.add("singh");
lname.add("jha");
ArrayList<String> name=new ArrayList<String>();
Iterator<String> it1=fname.iterator();
Iterator<String> it2=lname.iterator();
while(it1.hasNext() && it2.hasNext()){
    String f=it1.next();
    String l=it2.next();
    name.add(f+" "+l);
}
for(String str:name){
    System.out.println(str);
}

} }

output :

deepak goswami avinash singh amit jha

1 Comment

This answer would be more useful if it included some non-code text explaining what you're doing here. A code-only answer is only half complete.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.