Monday, November 11, 2013

Java Collection: ArrayList

Using Collections, implement a data structure for storing numbers(int) in such a fashion that they can be accessed either in the order in which they were added or in their natural sorted order (ascending).

Hint: The nodes should have two references.
Implement three cases, where the 1st case [insert] is for adding numbers into the data structure, 2nd case [ascendingorder] is for displaying the elements of data structure in ascending order and the 3rd case [insertionorder] is for displaying the elements of data structure the order of their insertion.


Solution:

import java.util.Collections;
import java.util.Scanner;
import java.util.ArrayList;

public class ArrayListExample{
 
public static void main(String [] args)
 {
  ArrayList< Integer > al=new ArrayList< Integer >();
  ArrayList< Integer > al2=new ArrayList< Integer >();
  
  String st;
  int j=0;
  int num=0;
  Scanner input = new Scanner(System.in);
  
  while(true){
   
   st=input.next();
   if(st.equals("insert"))
    j=1;
   else if(st.equals("ascendingorder"))
    j=2;
   else if(st.equals("insertionorder"))
    j=3;
   else
    j=0;
   
   switch(j){
   
   case 1: //Insert
    num=input.nextInt();
    al.add(num);
    al2.add(num);
    break;
    
   case 2: //ascendingorder
    if(al.isEmpty()){
     System.out.println("Empty");
     break;
    }
    Collections.sort(al);
    for(Integer i : al){
     System.out.print(i+" ");
    }
    System.out.println();
    break;
    
   case 3: //insertionorder
    if(al2.isEmpty()){
     System.out.println("Empty");
     break;
    }
    for(Integer i : al2){
     System.out.print(i+" ");
    }
    System.out.println();
    break;    

   default:
    System.out.println("Invalid input!!");
    break;
   }
  }  
 }
}

No comments:

Post a Comment