Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 相同的ArrayList但对象顺序不同_Java_Android_Arraylist - Fatal编程技术网

Java 相同的ArrayList但对象顺序不同

Java 相同的ArrayList但对象顺序不同,java,android,arraylist,Java,Android,Arraylist,该死的家伙们 我有一个关于ArrayList的小问题。我正在用android Studio编写一个android应用程序(一种音乐播放器),因此我有一个main活动,第二个活动是关于当前歌曲的信息,还有一个音乐服务 我现在的问题是,我给服务提供了一个歌曲列表,服务应该播放这些歌曲,我通过DataHolder给第二个活动提供了相同的列表,用于显示歌曲信息 但是列表的顺序不同。有人能告诉我为什么以及如何解决这个问题吗 下面是一些代码: 这里我定义了ArrayList。我想有一个随机顺序,所以我洗牌一

该死的家伙们

我有一个关于ArrayList的小问题。我正在用android Studio编写一个android应用程序(一种音乐播放器),因此我有一个main活动,第二个活动是关于当前歌曲的信息,还有一个音乐服务

我现在的问题是,我给服务提供了一个歌曲列表,服务应该播放这些歌曲,我通过DataHolder给第二个活动提供了相同的列表,用于显示歌曲信息

但是列表的顺序不同。有人能告诉我为什么以及如何解决这个问题吗

下面是一些代码:

这里我定义了ArrayList。我想有一个随机顺序,所以我洗牌一次。在checkRunTimePermission中,列表将被填充

songList = new ArrayList<Song>();
        checkRunTimePermission();
        Collections.shuffle(songList);
这是我的DataHolder类

public class DataHolder extends Application {

    private ArrayList<Song> songList;
    public ArrayList<Song> getSonglist() {return songList;}
    public void setSongList (ArrayList<Song> data) {this.songList = data;}

}
公共类数据持有者扩展应用程序{
私人ArrayList歌曲列表;
public ArrayList getSonglist(){return songList;}
public void setSongList(ArrayList data){this.songList=data;}
}

您尝试过这个解决方案吗

public void setSongList (ArrayList<Song> data) {
   this.songList.addAll(data);

 }
public void setSongList(数组列表数据){
this.songList.addAll(数据);
}

您尝试过这个解决方案吗

public void setSongList (ArrayList<Song> data) {
   this.songList.addAll(data);

 }
public void setSongList(数组列表数据){
this.songList.addAll(数据);
}

似乎缺少某些内容。您应该提供一个。这对你来说是更多的工作,但你可能会在做的同时找到解决方案,人们会更容易帮助你。看起来缺少了一些东西。你应该提供一个解决方案。这对你来说是更多的工作,但是你可能会在做的同时找到解决方案,人们会更容易帮助你。ArrayList是一个顺序列表。因此,插入和检索顺序是相同的。所以,若要将列表放在数据持有者上,您可以尝试使用addAll,也可以添加每个元素,如下所示:public void setSongList(ArrayList data){for(Song:data)this.songList.add(Song);}当我使用addAll时,应用程序会崩溃。您只需在前面实例化对象。ArrayList是一个顺序列表。因此,插入和检索顺序是相同的。所以,若要将列表放在您的数据持有者上,您可以尝试使用addAll,或者您可以这样添加每个元素:public void setSongList(ArrayList data){for(Song-Song:data)this.songList.add(Song);}当我使用addAll时,应用程序会崩溃。您只需要先实例化您的对象。