Home
About
Projects
Contact
ex185.java
package lists18;

/**
 * William Smolinski
 * CISS 241
 * Exercise 18-5: Creates a TreeSet of movie objects and keeps them sorted in alphabetical order, and not allowing duplicate movies
 */

import java.util.Scanner;
import java.util.TreeSet;
import java.util.Iterator;

public class ex185 
{
	public static void main(String[] args)
	{
		TreeSet<movie18> movies = new TreeSet<movie18>();
	
		int pick;
		
		Scanner sc = new Scanner(System.in);
        
		System.out.println("There are " + movies.size() + " movies in the TreeSet");
        System.out.println("Enter 1 to add movie to treeset");
        System.out.println("Enter 2 to see first movie on treeset");
        System.out.println("Enter 3 to watch first movie on treeset");
        System.out.println("Enter 4 to see last movie on treeset");
        System.out.println("Enter 5 to watch last movie on treeset");       
        System.out.println("Enter 6 to see treeset of movies");
        System.out.print("Enter pick (-1 to end):  ");
        
        pick = sc.nextInt();
        while (pick != -1)
        {
	        switch(pick)
	        {
	            case 1:
	            	//Add movie
	            	sc.nextLine();
	            	AddMovie(movies, sc);
	            	break;
	            	
	            case 2:
	            	//See next movie
	            	GetFirst(movies, false);
	            	break;
	
	            case 3:
	            	//See next movie and remove it
	            	GetFirst(movies, true);
	            	break;
	     
	            case 4:
	            	//See last movie
	            	GetLast(movies, false);
	            	break;
	            	
	            case 5:
	            	//See last movie and remove it
	            	GetLast(movies, true);
	            	break;
	            	
	            case 6:
	            	//See TreeSet of movies
	            	SeeTreeSet(movies);
	            	break;
	
	            default:
	                System.out.println("Try again");
	        }
	        
	        System.out.println("There are " + movies.size() + " movies in the TreeSet");
	        System.out.println("Enter 1 to add movie to treeset");
	        System.out.println("Enter 2 to see first movie on treeset");
	        System.out.println("Enter 3 to watch first movie on treeset");
	        System.out.println("Enter 4 to see last movie on treeset");
	        System.out.println("Enter 5 to watch last movie on treeset");       
	        System.out.println("Enter 6 to see treeset of movies");
	        System.out.print("Enter pick (-1 to end):  ");
	        pick = sc.nextInt();
        }
	}
	
	private static void AddMovie(TreeSet<movie18> movies, Scanner sc)
	{
		System.out.print("\nEnter the name of the movie: ");
    	String name = sc.nextLine();
    	System.out.print("Enter the year of the movie: ");
    	int year = sc.nextInt();
    	
    	if(movies.add(new movie18(name, year)))
    	{
    		System.out.println("Movie successfully added\n");
    	}
    	else 
    	{
    		System.out.println("Movie failed to add, it already exists in TreeSet\n");
		}
	}
	
	private static void GetFirst(TreeSet<movie18> movies, boolean remove)
	{
		movie18 movie;
		
		if(!movies.isEmpty())
		{
			if(remove)
			{
				movie = movies.pollFirst();
				System.out.println("\nWatched first movie:\nName: " + movie.getname() + "\nYear: " + movie.getyear() + "\nMovie successfully removed\n");
			}
			else 
			{
				movie = movies.first();
				System.out.println("\nFirst movie:\nName: " + movie.getname() + "\nYear: " + movie.getyear() + "\n");
			}
		}
		else 
		{
			System.out.println("\nThere are no movies in the TreeSet\n");
		}
	}
	
	private static void GetLast(TreeSet<movie18> movies, boolean remove)
	{
		movie18 movie;
		
		if(!movies.isEmpty())
		{
			if(remove)
			{
				movie = movies.pollLast();
				System.out.println("\nWatched last movie:\nName: " + movie.getname() + "\nYear: " + movie.getyear() + "\nMovie successfully removed\n");
			}
			else 
			{
				movie = movies.last();
				System.out.println("\nLast movie:\nName: " + movie.getname() + "\nYear: " + movie.getyear() + "\n");
			}
		}
		else 
		{
			System.out.println("\nThere are no movies in the TreeSet\n");
		}
	}
	
	private static void SeeTreeSet(TreeSet<movie18> movies)
	{	
		Iterator<movie18> iterator = movies.iterator();
		System.out.println("\nMovies in TreeSet:\n");
		int num = 1;
		movie18 movie;
		
		while(iterator.hasNext())
		{
			movie = iterator.next();
			System.out.print(num + ". Movie Name: " + movie.getname() + ", Year: " + movie.getyear() + "\n");
			num++;
		}
		
		System.out.println();
	}
}