Question

Hé, tout le monde. Je suis nouveau à Java et je 2D LinkedList comme ceci:

  

LinkedList<LinkedList<String>> albums = new LinkedList<LinkedList<String>>();

Ce qui est rempli de données comme ceci:

if (!artist.isEmpty() && !name.isEmpty()) {
    albums.add(new LinkedList<String>());
    albums.getLast().add(artist.toString());
    albums.getLast().add(name.toString());
}

Mais je veux vous assurer que ma liste n'a pas d'albums en double. Comment vérifier chaque fois que mon albums contient déjà même paire de artiste et nom

Était-ce utile?

La solution

Ma suggestion serait de créer une nouvelle classe, appelée album qui ressemble à ceci:

public class Album
{
    private String name;
    private String artist;

    public Album(String name, String artist)
    {
        this.name = name;
        this.artist = artist;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getArtist()
    {
        return artist;
    }

    public void setArtist(String artist)
    {
        this.artist = artist;
    }

    public boolean equals(Object o)
    {
        if (o instanceof Album)
        {
            Album that = (Album)o;
            return album.equals(that.album) && artist.equals(that.artist);
        }
        else
        {
            return false;
        }
    }

    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((album == null) ? 0 : album.hashCode());
        result = prime * result + ((artist == null) ? 0 : artist.hashCode());
        return result;
    }
}

Ensuite, vous devriez pouvoir utiliser contains () pour vérifier si oui ou non l'album existe déjà dans la liste chaînée.

Autres conseils

Oui, commentateur a raison. Créer une Album de classe avec des champs de artist et name et mettre en œuvre equals() (et hashCode()) sur eux. Et vous pouvez utiliser contains() pour trouver le double. Ou même envisager d'utiliser un Set (mais seulement si le code de hachage est vraiment défini votre classe, car un ensemble est soutenu par un hachage).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top