public void loadDataTrack(String path) { allTracks = new HashMap<Integer, Track>(); List<String> data = loadData(path); for (String str : data) { Track track = new Track(); String[] strArray = str.split("\\|"); int trackId = Integer.parseInt(strArray[0]); int trackAlbum = -1; // -1 means none int trackArtist = -1; List<Integer> trackGenres = new LinkedList<Integer>(); if (!strArray[1].equals("None")) { trackAlbum = Integer.parseInt(strArray[1]); if (allAlbums.containsKey(trackAlbum)) { Album album = allAlbums.get(trackAlbum); List<Integer> tracksInList = album.getTracks(); tracksInList.add(trackId); album.setTracks(tracksInList); allAlbums.put(trackAlbum, album); } } if (!strArray[2].equals("None")) { trackArtist = Integer.parseInt(strArray[2]); if (allArtists.containsKey(trackArtist)) { Artist artist = allArtists.get(trackArtist); List<Integer> tracksInList = artist.getTracks(); tracksInList.add(trackId); artist.setTracks(tracksInList); allArtists.put(trackArtist, artist); } } if (strArray.length > 3) { for (int i = 0; i < strArray.length - 3; i++) { int trackGenre = Integer.parseInt(strArray[i + 3]); trackGenres.add(trackGenre); if (allGenres.containsKey(trackGenre)) { Genre genre = allGenres.get(trackGenre); List<Integer> tracksInList = genre.getTracks(); tracksInList.add(trackId); genre.setTracks(tracksInList); allGenres.put(trackGenre, genre); } } } else { trackGenres.add(-1); } track.setId(trackId); track.setAlbumId(trackAlbum); track.setArtistId(trackArtist); track.setGenreId(trackGenres); allTracks.put(trackId, track); } }