From dbaec404d7c22aeed4f819b33302d11279420788 Mon Sep 17 00:00:00 2001 From: bigheadbh Date: Tue, 30 Mar 2021 19:05:48 -0300 Subject: [PATCH] alteracoes classe --- tps/fonte/Template.java | 192 ++++++++-------- tps/fonte/Track.java | 488 ++++++++++++++++++++-------------------- 2 files changed, 340 insertions(+), 340 deletions(-) diff --git a/tps/fonte/Template.java b/tps/fonte/Template.java index b32fd8b..de43126 100644 --- a/tps/fonte/Template.java +++ b/tps/fonte/Template.java @@ -1,96 +1,96 @@ -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.text.ParseException; - -public class Template { - - // funcao que simula um construtor - public static Track cadastra(String dadosMusica) throws ParseException { - String campos[] = new String[19]; - int j = 0; - String temp = ""; - for (int i = 0; i < 19; i++) { - temp = ""; - while (j < dadosMusica.length() && ((dadosMusica.charAt(j) != ',') - || !(dadosMusica.charAt(j) == ',' && dadosMusica.charAt(j + 1) != ' '))) { - if (dadosMusica.charAt(j) != '"') - temp += dadosMusica.charAt(j); - j++; - } - j++; - campos[i] = temp; - } - Track musica = new Track(campos); - - return musica; - } - - /* - * leitura das musicas e geração dos objetos Track - */ - public static Track[] inserirPlaylist(int quantidade, String idList[], String totalMusicList[]) throws ParseException { - Track musicas[] = new Track[quantidade]; - for (int i = 0; i < quantidade; i++) { - for (int j = 0; j < totalMusicList.length; j++) { - if (totalMusicList[j].contains(idList[i])) { - String dadosMusic = totalMusicList[j]; - musicas[i] = cadastra(dadosMusic); - j = totalMusicList.length; - } - } - - } - return musicas; - } - - /* - * leitura de todas as linhas da entrada padrão - */ - public static int entradaPadrao(String idList[]) throws IOException { - BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); - int i = 0; - // faco a leitura dos ids do pub.in - String linha = in.readLine(); - while (!(linha.contains("FIM"))) { - idList[i] = linha; - i++; - linha = in.readLine(); - } - return i; - } - - /* - * leitura de todas as musicas do arquivo de entrada /tmp/data.csv - */ - public static String[] ler() throws Exception { - final int TOTAL_MUSIC_NUMBER = 170625; - String totalMusicList[] = new String[TOTAL_MUSIC_NUMBER]; - FileReader arquivo = new FileReader("./tmp/data.csv"); - BufferedReader ler = new BufferedReader(arquivo); - String linha = ler.readLine(); - linha = ler.readLine(); - int i = 0; - while (linha != null) { - totalMusicList[i] = linha; - linha = ler.readLine(); - i++; - } - arquivo.close(); - return totalMusicList; - } - - public static void main(String args[]) throws Exception { - // vetor que armazena os ids da entrada padrao pub.in - String idList[] = new String[500]; - int playlistTam = entradaPadrao(idList); - // leitura de todas as musicas do arquivo de entrada /tmp/data.csv - String totalMusicList[] = ler(); - Track musicas[] = inserirPlaylist(playlistTam, idList, totalMusicList); - - for(Track musica:musicas) - musica.imprimir(); - } - -} +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.text.ParseException; + +public class Template { + + // funcao que simula um construtor + public static Track cadastra(String dadosMusica) throws ParseException { + String campos[] = new String[19]; + int j = 0; + String temp = ""; + for (int i = 0; i < 19; i++) { + temp = ""; + while (j < dadosMusica.length() && ((dadosMusica.charAt(j) != ',') + || !(dadosMusica.charAt(j) == ',' && dadosMusica.charAt(j + 1) != ' '))) { + if (dadosMusica.charAt(j) != '"') + temp += dadosMusica.charAt(j); + j++; + } + j++; + campos[i] = temp; + } + Track musica = new Track(campos); + + return musica; + } + + /* + * leitura das musicas e geracao dos objetos Track + */ + public static Track[] inserirPlaylist(int quantidade, String idList[], String totalMusicList[]) throws ParseException { + Track musicas[] = new Track[quantidade]; + for (int i = 0; i < quantidade; i++) { + for (int j = 0; j < totalMusicList.length; j++) { + if (totalMusicList[j].contains(idList[i])) { + String dadosMusic = totalMusicList[j]; + musicas[i] = cadastra(dadosMusic); + j = totalMusicList.length; + } + } + + } + return musicas; + } + + /* + * leitura de todas as linhas da entrada padrao + */ + public static int entradaPadrao(String idList[]) throws IOException { + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + int i = 0; + // faco a leitura dos ids do pub.in + String linha = in.readLine(); + while (!(linha.contains("FIM"))) { + idList[i] = linha; + i++; + linha = in.readLine(); + } + return i; + } + + /* + * leitura de todas as musicas do arquivo de entrada /tmp/data.csv + */ + public static String[] ler() throws Exception { + final int TOTAL_MUSIC_NUMBER = 170625; + String totalMusicList[] = new String[TOTAL_MUSIC_NUMBER]; + FileReader arquivo = new FileReader("./tmp/data.csv"); + BufferedReader ler = new BufferedReader(arquivo); + String linha = ler.readLine(); + linha = ler.readLine(); + int i = 0; + while (linha != null) { + totalMusicList[i] = linha; + linha = ler.readLine(); + i++; + } + arquivo.close(); + return totalMusicList; + } + + public static void main(String args[]) throws Exception { + // vetor que armazena os ids da entrada padrao pub.in + String idList[] = new String[500]; + int playlistTam = entradaPadrao(idList); + // leitura de todas as musicas do arquivo de entrada /tmp/data.csv + String totalMusicList[] = ler(); + Track musicas[] = inserirPlaylist(playlistTam, idList, totalMusicList); + + for(Track musica:musicas) + musica.imprimir(); + } + +} diff --git a/tps/fonte/Track.java b/tps/fonte/Track.java index e959648..0265581 100644 --- a/tps/fonte/Track.java +++ b/tps/fonte/Track.java @@ -1,244 +1,244 @@ -package classe; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - - -public class Track { - - // (0)valence,(1)year,(2)acousticness,(3)artists,(4)danceability,(5)duration_ms,(6)energy, - // (7)explicit,(8)id,(9)instrumentalness,(10)key,(11)liveness,(12)loudness,(13)mode, - // (14)name,(15)popularity,(16)release_date,(17)speechiness,(18)tempo - private String id; // 8 - private String key; // 10 - private String artists; // 3 - private Date realease; // 16 - private double acousticness; // 2 - private double danceability; // 4 - private double energy; // 6 - private int duration; // 5 - private double instrumentalness; // 9 - private double valence; // 0 - private int popularity; // 15 - private float tempo; // 18 - private double liveness; // 11 - private double loudness; // 12 - private double speechiness; // 17 - private int year; // 1 - - public Track() { - this.id = ""; - } - - public Track(String[] values) throws ParseException { - this.id = values[8]; // 8 - this.nome = values[14]; // 14 - this.key = values[10]; // 10 - this.acousticness = Double.parseDouble(values[2]); // 2 - this.danceability = Double.parseDouble(values[4]); // 4 - this.energy = Double.parseDouble(values[6]); // 6 - this.duration = Integer.parseInt(values[5]); // 5 - this.instrumentalness = Double.parseDouble(values[9]); // 9 - this.valence = Double.parseDouble(values[0]); // 0 - this.popularity = Integer.parseInt(values[15]); // 15 - this.tempo = Float.parseFloat(values[18]); // 18 - this.liveness = Double.parseDouble(values[11]); // 11 - this.loudness = Double.parseDouble(values[12]); // 12 - this.speechiness = Double.parseDouble(values[17]); // 17 - this.year = Integer.parseInt(values[1]); // 1 - - String artistsString = ""; - int i = 0; - while (i < values[3].length()) { - if (!(values[3].charAt(i) == 39 && (values[3].charAt(i - 1) == 91 || - values[3].charAt(i + 1) == 93 || values[3].charAt(i + 1) == 44 || - values[3].charAt(i - 2) == 44))) { - artistsString += values[3].charAt(i); - } - i++; - } - artists = artistsString; // 3 ; - - SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd"); - if (values[16].length() == 4) { - realease = formato.parse(values[16] + "-01-01"); - } else if (values[16].length() == 7) { - realease = formato.parse(values[16] + "-01"); - } else { - realease = formato.parse(values[16]); - } - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getNome() { - return nome; - } - - public void setName(String nome) { - this.nome = nome; - } - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getArtists() { - return artists; - } - - public void setArtists(String artists) { - this.artists = artists; - } - - public Date getRealease() { - return realease; - } - - public void setRealease(Date realease) { - this.realease = realease; - } - - public double getAcousticness() { - return acousticness; - } - - public void setAcousticness(double acousticness) { - this.acousticness = acousticness; - } - - public double getDanceability() { - return danceability; - } - - public void setDanceability(double danceability) { - this.danceability = danceability; - } - - public double getEnergy() { - return energy; - } - - public void setEnergy(double energy) { - this.energy = energy; - } - - public int getDuration() { - return duration; - } - - public void setDuration(int duration) { - this.duration = duration; - } - - public double getInstrumentalness() { - return instrumentalness; - } - - public void setInstrumentalness(double instrumentalness) { - this.instrumentalness = instrumentalness; - } - - public double getValence() { - return valence; - } - - public void setValence(double valence) { - this.valence = valence; - } - - public int getPopularity() { - return popularity; - } - - public void setPopularity(int popularity) { - this.popularity = popularity; - } - - public float getTempo() { - return tempo; - } - - public void setTempo(float tempo) { - this.tempo = tempo; - } - - public double getLiveness() { - return liveness; - } - - public void setLiveness(double liveness) { - this.liveness = liveness; - } - - public double getLoudness() { - return loudness; - } - - public void setLoudness(double loudness) { - this.loudness = loudness; - } - - public double getSpeechiness() { - return speechiness; - } - - public void setSpeechiness(double speechiness) { - this.speechiness = speechiness; - } - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - - public Elemento clone() { - Track novo = new Track(); - novo.nome = this.nome; - novo.id = this.id; - novo.key = this.key; - novo.artists = this.artists; - novo.realease = this.realease; - novo.acousticness = this.acousticness; - novo.danceability = this.danceability; - novo.energy = this.energy; - novo.duration = this.duration; - novo.instrumentalness = this.instrumentalness; - novo.valence = this.valence; - novo.popularity = this.popularity; - novo.tempo = this.tempo; - novo.liveness = this.liveness; - novo.loudness = this.loudness; - novo.speechiness = this.speechiness; - novo.year = this.year; - return novo; - } - - - public void imprimir() throws Exception { - System.out.println(this.toString()); - } - - - public String toString() { - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); - return id + " ## " + artists.toString() + " ## " + nome + " ## " + sdf.format(realease) + " ## " + acousticness - + " ## " + danceability + " ## " + instrumentalness + " ## " + liveness + " ## " + loudness + " ## " - + speechiness + " ## " + energy + " ## " + duration; - } -} + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + + +public class Track { + + // (0)valence,(1)year,(2)acousticness,(3)artists,(4)danceability,(5)duration_ms,(6)energy, + // (7)explicit,(8)id,(9)instrumentalness,(10)key,(11)liveness,(12)loudness,(13)mode, + // (14)name,(15)popularity,(16)release_date,(17)speechiness,(18)tempo + private String nome; + private String id; // 8 + private String key; // 10 + private String artists; // 3 + private Date realease; // 16 + private double acousticness; // 2 + private double danceability; // 4 + private double energy; // 6 + private int duration; // 5 + private double instrumentalness; // 9 + private double valence; // 0 + private int popularity; // 15 + private float tempo; // 18 + private double liveness; // 11 + private double loudness; // 12 + private double speechiness; // 17 + private int year; // 1 + + public Track() { + this.id = ""; + } + + public Track(String[] values) throws ParseException { + this.id = values[8]; // 8 + this.nome = values[14]; // 14 + this.key = values[10]; // 10 + this.acousticness = Double.parseDouble(values[2]); // 2 + this.danceability = Double.parseDouble(values[4]); // 4 + this.energy = Double.parseDouble(values[6]); // 6 + this.duration = Integer.parseInt(values[5]); // 5 + this.instrumentalness = Double.parseDouble(values[9]); // 9 + this.valence = Double.parseDouble(values[0]); // 0 + this.popularity = Integer.parseInt(values[15]); // 15 + this.tempo = Float.parseFloat(values[18]); // 18 + this.liveness = Double.parseDouble(values[11]); // 11 + this.loudness = Double.parseDouble(values[12]); // 12 + this.speechiness = Double.parseDouble(values[17]); // 17 + this.year = Integer.parseInt(values[1]); // 1 + + String artistsString = ""; + int i = 0; + while (i < values[3].length()) { + if (!(values[3].charAt(i) == 39 && (values[3].charAt(i - 1) == 91 || + values[3].charAt(i + 1) == 93 || values[3].charAt(i + 1) == 44 || + values[3].charAt(i - 2) == 44))) { + artistsString += values[3].charAt(i); + } + i++; + } + artists = artistsString; // 3 ; + + SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd"); + if (values[16].length() == 4) { + realease = formato.parse(values[16] + "-01-01"); + } else if (values[16].length() == 7) { + realease = formato.parse(values[16] + "-01"); + } else { + realease = formato.parse(values[16]); + } + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getNome() { + return nome; + } + + public void setName(String nome) { + this.nome = nome; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getArtists() { + return artists; + } + + public void setArtists(String artists) { + this.artists = artists; + } + + public Date getRealease() { + return realease; + } + + public void setRealease(Date realease) { + this.realease = realease; + } + + public double getAcousticness() { + return acousticness; + } + + public void setAcousticness(double acousticness) { + this.acousticness = acousticness; + } + + public double getDanceability() { + return danceability; + } + + public void setDanceability(double danceability) { + this.danceability = danceability; + } + + public double getEnergy() { + return energy; + } + + public void setEnergy(double energy) { + this.energy = energy; + } + + public int getDuration() { + return duration; + } + + public void setDuration(int duration) { + this.duration = duration; + } + + public double getInstrumentalness() { + return instrumentalness; + } + + public void setInstrumentalness(double instrumentalness) { + this.instrumentalness = instrumentalness; + } + + public double getValence() { + return valence; + } + + public void setValence(double valence) { + this.valence = valence; + } + + public int getPopularity() { + return popularity; + } + + public void setPopularity(int popularity) { + this.popularity = popularity; + } + + public float getTempo() { + return tempo; + } + + public void setTempo(float tempo) { + this.tempo = tempo; + } + + public double getLiveness() { + return liveness; + } + + public void setLiveness(double liveness) { + this.liveness = liveness; + } + + public double getLoudness() { + return loudness; + } + + public void setLoudness(double loudness) { + this.loudness = loudness; + } + + public double getSpeechiness() { + return speechiness; + } + + public void setSpeechiness(double speechiness) { + this.speechiness = speechiness; + } + + public int getYear() { + return year; + } + + public void setYear(int year) { + this.year = year; + } + + + public Track clone() { + Track novo = new Track(); + novo.nome = this.nome; + novo.id = this.id; + novo.key = this.key; + novo.artists = this.artists; + novo.realease = this.realease; + novo.acousticness = this.acousticness; + novo.danceability = this.danceability; + novo.energy = this.energy; + novo.duration = this.duration; + novo.instrumentalness = this.instrumentalness; + novo.valence = this.valence; + novo.popularity = this.popularity; + novo.tempo = this.tempo; + novo.liveness = this.liveness; + novo.loudness = this.loudness; + novo.speechiness = this.speechiness; + novo.year = this.year; + return novo; + } + + + public void imprimir() throws Exception { + System.out.println(this.toString()); + } + + + public String toString() { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + return id + " ## " + artists.toString() + " ## " + nome + " ## " + sdf.format(realease) + " ## " + acousticness + + " ## " + danceability + " ## " + instrumentalness + " ## " + liveness + " ## " + loudness + " ## " + + speechiness + " ## " + energy + " ## " + duration; + } +}