Sto realizzando un'applicazione java che crea una playlist musicale a partire dalla directory musicale presente sul proprio disco.
In una playlist posso avere la stessa canzone più volte ripetuta.
ad esempio posso avere la seguente playlist:

1 ligabue certe notti
2 vasco siamo soli
3 renga amore racconta
4 ligabue certe notti

nel momento in cui decido di cancellare la canzone alla posizione 4, l'output diventa il seguente:

1 vasco siamo soli
2 renga amore racconta

praticamente mi cancella tutte le canzoni "doppie" che trova e invece vorrei che il mio output fosse:

1 ligabue certe notti
2 vasco siamo soli
3 renga amore racconta

vi posto alcuni pezzi di codice per cercare di farmi aiutare a capire dove sta l'errore:

classe Playlistpanel(che si occupa di interfacciare java al database)
codice:
MyButton remove = new MyButton("Rimuovi file selezionati", new ImageIcon("resources/no.png"));
        remove.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    int[] rows = table.getSelectedRows();
                    for (int i = 0; i < rows.length; i++) {
                        int row = rows[i];
                        if (row == pos)
                            pos = -1;
                        else if (row < pos) pos--;
                        String key_mp3 = table.getModel().getValueAt(row, 1) + "";
                        DBManager.deleteFileFromPlaylist(key_mp3, key);

                    }
                    refresh();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
        });
classe Dbmanager (si occupa di gestire il database e interrogazioni sql)
codice:
public static void deleteFileFromPlaylist(String key_mp3, String key_playlist) throws SQLException {
        stat.executeUpdate("DELETE FROM PLAYLIST_MP3 where key_mp3=" + key_mp3 + " AND key_playlist=" + key_playlist);
    }

public static Vector<Vector<String>> getPlaylist(String key) throws SQLException {
        Vector<Vector<String>> ret = new Vector<Vector<String>>();
        ResultSet resultSet = stat.executeQuery("SELECT * FROM PLAYLIST_MP3 JOIN MP3 ON(KEY_MP3=MP3.KEY) WHERE KEY_PLAYLIST=" + key + " ORDER BY pos");

        while (resultSet.next()) {
            Vector<String> vector = new Vector<String>();
            vector.addElement(resultSet.getString("name"));
            vector.addElement(resultSet.getString("key"));
            vector.addElement(resultSet.getString("path"));
            vector.addElement(resultSet.getString("artist"));
            vector.addElement(resultSet.getString("album"));
            vector.addElement(resultSet.getString("title"));
            vector.addElement(resultSet.getString("time"));
            vector.addElement((resultSet.getInt("pos") + 1) + "");
            ret.add(vector);
        }
        System.out.println("ret = " + ret);

        return ret;
    }
sapreste gentilmente dirmi come risolvere l'errore che commetto?
grazie