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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.