Answer:
package lab1;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListMethodsTester
{
public static void main(String[] args)
{
ArrayList<String> stringArray = new ArrayList<String>();
stringArray.add("This");
stringArray.add("is");
stringArray.add("an");
stringArray.add("ArrayList");
stringArray.add("of");
stringArray.add("Strings");
System.out.println("Displaying the arraylist:");
ArrayListMethods.print(stringArray);
System.out.println("\nCondensing the ArrayList:");
ArrayListMethods.condense(stringArray);
ArrayListMethods.print(stringArray);
System.out.println("\nDuplicating the ArrayList:");
ArrayListMethods.duplicate(stringArray);
ArrayListMethods.print(stringArray);
}
}
class ArrayListMethods
{
static void print(ArrayList stringArray)
{
Iterator it = stringArray.iterator();
while (it.hasNext())
System.out.println(it.next() + " ");
}
static void condense(ArrayList stringArray)
{
int length=stringArray.size();
ArrayList cloneArray=(ArrayList) stringArray.clone();
stringArray.clear();
StringBuilder sb=new StringBuilder("");
for (int i = 0; i < (length/2); i++)
{
sb.append(cloneArray.get(i));
sb.append(" ");
}
stringArray.add(sb);
StringBuilder sb1=new StringBuilder("");
for (int i = (length/2); i < length; i++)
{
sb1.append(cloneArray.get(i));
sb1.append(" ");
}
stringArray.add(sb1);
}
static void duplicate(ArrayList stringArray)
{
for (int i = 0; i < stringArray.size(); i+=2)
{
stringArray.add(i+1,stringArray.get(i));
}
}
}
Explanation:
- Calculate the size of the arraylist to duplicate it into a secondary arraylist.
- Clear the original array to prepare for new contents.
- Implement a loop to process half of the original array.
- Employ another loop to handle the remaining half of the array and concatenate all into a unified string.