gpt4 book ai didi

java - Java中ArrayList的ArrayList

转载 作者:行者123 更新时间:2023-12-02 08:04:42 25 4
gpt4 key购买 nike

我是 Java 新手,有 C/C++ 背景。我正在尝试为 Android 编写一个音乐播放器应用程序,并且正在开发一个库扫描功能。我想要一个格式为“艺术家 -> 专辑 -> 歌曲”的分层数据库,其中艺术家有一个名字和一组专辑,一个专辑有一个名称、年份和一组歌曲,一首歌曲有一个标题、轨道编号,以及文件位置。

我创建了三个类来存储这些信息:

public class libraryElementArtist
{
public String name;
public ArrayList<libraryElementAlbum> albums;
}

public class libraryElementAlbum
{
public String name;
public String year;
public ArrayList<libraryElementSong> songs;
}

public class libraryElementSong
{
public String name;
public int num;
public String filename;
}

填充它们的想法很简单 - 扫描每个文件并首先添加其艺术家,然后是专辑,然后是歌曲。每次它都会在创建新艺术家/专辑之前检查以确保该艺术家/专辑尚不存在。

本质上,我首先创建一个 ArrayList 来存储艺术家信息,如下所示:

 ArrayList<libraryElementArtist> libraryData = new ArrayList<libraryElementArtist>();

然后,将艺术家添加到数据库中:

libraryElementArtist newEntry = new libraryElementArtist();
newEntry.name = song_artist;
libraryData.add(newEntry);

然后添加相册:

libraryElementAlbum newEntry = new libraryElementAlbum();
newEntry.name = song_album;
libraryData.get(artistIndex).albums.add(newEntry);

其中,artistIndex 是专辑艺术家在顶级艺术家数组中的索引。

当我在设备上运行它并在调试器中逐步执行它时,libraryElementArtist 项目将插入到libraryData 数组中,并且它们的名称已正确填写。但是,专辑字段被列为空,并且尝试添加专辑确实如此不填写任何数据。

抱歉,如果这是一个菜鸟问题,就像我说的,我是 Java 新手,我已经搜索过,但找不到我要找的东西。另外,这是我在 C++ 中执行此类任务的方式,不确定这是否是正确的 Java 方式。

最佳答案

我认为这是一个继承基础,所​​以让你的类层次结构就像(继承的使用),所以你必须只创建一个类,它具有其父类的所有派生属性class,并仅创建该类的 ArrayList,因此您不必创建嵌套的 ArrayList。 (如果我没记错或者如果那么请解释)。 :-)

或者通常只创建一个具有所有属性的类,如上所述,并使用一些 getter、setter 方法,然后使用该类创建 ArrayList。

关于java - Java中ArrayList的ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8365907/

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