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(); } }