Java Program to Split a list into Two Halves


In this article, we will understand how to split a list into two halves. A list is an ordered collection that allows us to store and access elements sequentially. It contains the index-based methods to insert, update, delete and search the elements. It can also have duplicate elements.

Below is a demonstration of the same −

Suppose our input is

Input list :[Java, Python, JavaScript, Shell, Scala]

The desired output would be

The first half of the list is:
[Java, Python]
The second half of the list is:
[JavaScript, Shell, Scala]

Algorithm

Step 1 - START
Step 2 - Declare three array list namely input_list, first_list, second_list.
Step 3 - Define the values.
Step 4 - Get the size of the array using the function .size().
Step 5 - Iterate the input_list using a for-loop, add all the elements with index lesser the size/2 index value to the first_list and add all the elements with index greater the size/2 index value to the second_list using the .add() function.
Step 6 - Display the result
Step 7 - Stop

Example 1

Here, we bind all the operations together under the ‘main’ function.

import java.util.ArrayList;
import java.util.List;
public class Demo {
   public static void main(String[] args) {
      System.out.println("Required packages have been imported");
      List<String> input_list = new ArrayList<String>();
      input_list.add("Java");
      input_list.add("Python");
      input_list.add("JavaScript");
      input_list.add("Shell");
      input_list.add("Scala");
      System.out.println("The list is defined as " +input_list);
      List<String> first_list = new ArrayList<String>();
      List<String> second_list = new ArrayList<String>();
      int size = input_list.size();
      System.out.println("\nThe first half of the list is: ");
      for (int i = 0; i < size / 2; i++)
         first_list.add(input_list.get(i));
      System.out.println(first_list);
      System.out.println("The second half of the list is: ");
      for (int i = size / 2; i < size; i++)
         second_list.add(input_list.get(i));
      System.out.println(second_list);
   }
}

Output

Required packages have been imported
The list is defined as [Java, Python, JavaScript, Shell, Scala]

The first half of the list is:
[Java, Python]
The second half of the list is:
[JavaScript, Shell, Scala]

Example 2

Here, we encapsulate the operations into functions exhibiting object-oriented programming.

import java.util.ArrayList;
import java.util.List;
public class Demo {
   static void split_list(List<String> input_list) {
      List<String> first_list = new ArrayList<String>();
      List<String> second_list = new ArrayList<String>();
      int size = input_list.size();
      System.out.println("\nThe first half of the list is: ");
      for (int i = 0; i < size / 2; i++)
         first_list.add(input_list.get(i));
      System.out.println(first_list);
      System.out.println("The second half of the list is: ");
      for (int i = size / 2; i < size; i++)
         second_list.add(input_list.get(i));
      System.out.println(second_list);
   }
   public static void main(String[] args) {
      System.out.println("Required packages have been imported");
      List<String> input_list = new ArrayList<String>();
      input_list.add("Java");
      input_list.add("Python");
      input_list.add("JavaScript");
      input_list.add("Shell");
      input_list.add("Scala");
      System.out.println("The list is defined as " +input_list);
      split_list(input_list);
   }
}

Output

Required packages have been imported
The list is defined as [Java, Python, JavaScript, Shell, Scala]

The first half of the list is:
[Java, Python]
The second half of the list is:
[JavaScript, Shell, Scala]

Updated on: 29-Mar-2022

860 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements