gpt4 book ai didi

java - 从 HashMap 中删除位置

转载 作者:太空宇宙 更新时间:2023-11-04 13:51:54 25 4
gpt4 key购买 nike

我正在开发一个类似音乐播放器的东西。我正在 HashMap 上构建播放列表,但在删除特定的集合列表时遇到问题(案例 5)。它可以工作,但是当我删除列表中间的位置时,情况 1(显示所有播放列表)不再工作,因为我有空白空间(1,2,3,已删除,5,6....)。现在如何使删除一个后的那些仓位的索引减一呢?看起来 x-- 并没有解决我的问题。我希望您理解我的问题,这是代码,如果您需要我将任何内容翻译成英语,请询问。感谢您的帮助!

package PLAYLIST2;

import java.util.HashMap;
import java.util.Scanner;

public class Odtwarzacz {

// String lista;

// Odtwarzacz(Playlist) {
// lista = b;
// }

public static void main(String[] args) {
int nr;
int koniec = 0;
String nazwa11;
int x = 0;
HashMap<Integer, Playlist> Playlista = new HashMap<Integer, Playlist>();
Playlista.put(x, new Playlist("Rock"));
x++;
Playlista.get(0).dodajUtwor("Stockholm Syndrome", "Muse", 2004);
Playlista.get(0).dodajUtwor("Absolution", "Muse", 2004);
Playlista.put(x, new Playlist("Pop"));
x++;
Scanner odczyt = new Scanner(System.in);
// TODO Auto-generated method stub
while (koniec == 0) {
System.out.println("_________________________");
System.out.println("1.Wyświetl listę playlist");
System.out.println("2.Dodaj playlistę");
System.out.println("3.Wyświetl playlistę");
System.out.println("4.Posortuj playlistę");
System.out.println("5.Usuń playlistę");
nr = odczyt.nextInt();
switch (nr) {
case 1: {
System.out.println("Lista playlist: ");
for (int i = 0; i < x; i++) {
System.out.println(i + ". " + Playlista.get(i).Nazwa());
}
break;
}

case 2: {
System.out.print("Podaj nazwę nowej playlisty: ");
nazwa11 = odczyt.next();
Playlista.put(x, new Playlist(nazwa11));

System.out.println("Dodano playlistę: "
+ Playlista.get(x).Nazwa());
x++;
break;
}
case 3: {
System.out.print("Podaj numer playlisty:");
nr = odczyt.nextInt();
Playlista.get(nr).wyswietlListe();
break;
}
case 4: {
System.out.print("Podaj numer playlisty:");
nr = odczyt.nextInt();
Playlista.get(nr).sortuj();
break;

}
case 5: {
System.out.print("Podaj numer playlisty:");
nr = odczyt.nextInt();
System.out.println("Skasowano playlistę: "
+ Playlista.get(nr).Nazwa());
Playlista.remove(nr);
x--;
break;
}
}
}
}
}

最佳答案

您似乎不需要 HashMap。

HashMap 只是一个没有顺序的键值存储。

就您而言,List 似乎是更好的选择。它带有订单,因为它是它的要点。

您可以专门使用ArrayList :

List<Playlist> playlists = new ArrayList<>();
playlists.add(new Playlist("Rock"));
// ...
Playlist p = playlists.get(index);

关于java - 从 HashMap 中删除位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30218036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com