【发布时间】:2013-06-01 16:29:12
【问题描述】:
我有三种排序方法,分别是sortTitle()、sortYear()、sortSinger()。它们都采用arraylist 形式,因为它们将排序arraylist,但我的老师说我需要常规array 形式。我修复了我的整个程序,但这部分我不知道我将如何使其成为常规或我必须改变什么。以下是方法。
public static void sortTitles(ArrayList<Music2> music)
{
int y;
Music2 temp = new Music2("",0,"");
for(int x = 1; x<music.size(); x++)
{
temp.equals(music.get(x));
y=0;
for( y = x; y > 0; y--)
{
if(temp.getTitle().compareTo(music.get(y-1).getTitle()) < 0)
music.get(y).equals(music.get(y-1));
else
break;
}
music.get(y).equals(temp);
}
}
public static void sortSingers(ArrayList<Music2> music)
{
int y;
Music2 temp = new Music2("",0,"");
for(int x = 1; x<music.size(); x++)
{
temp.equals(music.get(x));
y=0;
for( y = x; y > 0; y--)
{
if(temp.getSinger().compareTo(music.get(y-1).getSinger()) < 0)
music.get(y).equals(music.get(y-1));
else
break;
}
music.get(y).equals(temp);
}
}
public static void sortYears(ArrayList<Music2> music)
{
int y;
Music2 temp = new Music2("",0,"");
for(int x = 1; x<music.size(); x++)
{
temp.equals(music.get(x));
y=0;
for( y = x; y > 0; y--)
{
if(temp.getYear() < music.get(y-1).getYear())
music.get(y).equals(music.get(y-1));
else
break;
}
music.get(y).equals(temp);
}
}
【问题讨论】:
-
您遇到了什么问题?将方法更改为采用
Music2[]并将访问权限更改为myArray[i]而不是myArrayList.get(i)。另一方面,如果您将相同的代码复制并粘贴到 3 个位置并更改一行,您应该意识到出了点问题。也许看看Arrays.sort是如何做到的,使用Comparator作为回调。 -
只需更改对 ArrayList 的每个引用以获取对数组的引用,并将每个
add和get更改为对应的数组[索引]。 -
这并没有太大帮助。它没有告诉我是否需要更改什么内容,我更改了包含所有名称和内容的数组列表,我只需要更改这些方法。 @mre
-
.size() 怎么样? @BoristheSpider
标签: java arrays sorting arraylist