Commit 77075519 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch10b] Examples for HashSet, including a Song with equals and hashCode

parent 66be8609
Loading
Loading
Loading
Loading
+2 −3
Changes for src/main/java/ch10b/Jukebox7.java: 2 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -4,15 +4,14 @@ import java.util.ArrayList;
import java.util.List;

public class Jukebox7 {
  List<SongV4> songList = new ArrayList<>();
  MockMoreSongs mockFile = new MockMoreSongs();
  private final MockMoreSongs mockFile = new MockMoreSongs();

  public static void main(String[] args) {
    new Jukebox7().go();
  }

  public void go() {
    songList = mockFile.getSongs();
    List<SongV3> songList = mockFile.getSongs();
    System.out.println(songList);
    songList.sort((one, two) -> one.getTitle().compareTo(two.getTitle()));
    System.out.println(songList);
+20 −0
Changes for src/main/java/ch10b/Jukebox8.java: 20 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch10b;

import java.util.*;

public class Jukebox8 {
  private final MockMoreSongs mockFile = new MockMoreSongs();

  public static void main(String[] args) {
    new Jukebox8().go();
  }

  public void go() {
    List<SongV3> songList = mockFile.getSongs();
    System.out.println(songList);
    songList.sort((one, two) -> one.getTitle().compareTo(two.getTitle()));
    System.out.println(songList);
    Set<SongV3> songSet = new HashSet<>(songList);
    System.out.println(songSet);
  }
}
+18 −9
Changes for src/main/java/ch10b/MockMoreSongs.java: 18 added lines, 9 removed lines.
Original line number Diff line number Diff line
@@ -5,15 +5,24 @@ import java.util.List;

class MockMoreSongs {

  public List<SongV4> getSongs() {
    List<SongV4> mySongs = new ArrayList<>();
    mySongs.add(new SongV4("somersault", "zero 7", "50"));
    mySongs.add(new SongV4("cassidy", "grateful dead", "65"));
    mySongs.add(new SongV4("$10", "hitchhiker", "80"));
    mySongs.add(new SongV4("havana", "cabello", "60"));
    mySongs.add(new SongV4("$10", "hitchhiker", "80"));
    mySongs.add(new SongV4("Cassidy", "grateful dead", "65"));
    mySongs.add(new SongV4("50 ways", "simon", "70"));
  public List<SongV3> getSongs() {
    List<SongV3> mySongs = new ArrayList<>();
    mySongs.add(new SongV3("somersault", "zero 7", "50"));
    mySongs.add(new SongV3("cassidy", "grateful dead", "65"));
    mySongs.add(new SongV3("$10", "hitchhiker", "80"));
    mySongs.add(new SongV3("havana", "cabello", "60"));
    mySongs.add(new SongV3("$10", "hitchhiker", "80"));
    mySongs.add(new SongV3("cassidy", "grateful dead", "65"));
    mySongs.add(new SongV3("50 ways", "simon", "70"));
    return mySongs;
  }
}

// "text file" version
//somersault, zero 7, 50
//cassidy, grateful dead, 65
//$10, hitchhiker, 80
//havana, cabello, 60
//$10, hitchhiker, 80
//cassidy, grateful dead, 65
//50 ways, simon, 70
 No newline at end of file
+13 −4
Changes for src/main/java/ch10b/SongV4.java: 13 added lines, 4 removed lines.
Original line number Diff line number Diff line
package ch10b;

public class SongV4 implements Comparable<SongV4> {
  String title;
  String artist;
  String bpm;
  private String title;
  private String artist;
  private String bpm;

  public boolean equals(Object aSong) {
    SongV4 other = (SongV4) aSong;
    return getTitle().equals(other.getTitle());
  }

  public int hashCode() {
    return title.hashCode();
  }

  public int compareTo(SongV4 s) {
    return title.compareTo(s.getTitle());
@@ -28,6 +37,6 @@ public class SongV4 implements Comparable<SongV4> {
  }

  public String toString() {
    return title + ": " + artist;
    return title;
  }
}