【发布时间】:2018-10-21 17:47:54
【问题描述】:
我正在尝试模拟专辑库。但我也可以按作者姓名的字母顺序组织图书馆的内容。有关如何按字母顺序组织对象数组的内容的任何帮助?
我创建了一个名为 Album 的类,我用它来创建我的对象
public class Album {
private String author;
private String name;
private String year;
public Album(String a, String n, String y) { // constructor
author = a;
name = n;
year = y;
}
public String toString()
{
return author +","+ name + "," + year;
}
}
Collection 类用于将对象存储到数组中
public class AlbumCollection {
public Album collection[]= new Album[10];
private int numAlbums = 0;
public void add (Album a){
if (numAlbums >= collection.length){
Album newcollection[]= new Album [collection.length * 2];
for (int n = 0; n < numAlbums; n ++){
newcollection[n] = collection[n];
}
newcollection = collection;
}
collection[numAlbums] = a;
numAlbums = numAlbums + 1;
}
public String toString()
{
String details = "";
for ( int p = 0; p < collection.length ; p ++)
{
details = details + collection[p] + "\n" ;
}
details += "\n";
return details;
}
}
这是我用来创建专辑对象的类
public class TestCollection {
public static void main(String[] args) {
AlbumCollection c = new AlbumCollection();
c.add( new Album("DaftPunk","Discovery","2001"));
c.add( new Album ("Pink Floid","The Dark Side Of The Moon","1973"));
c.add( new Album( "The Clash", "London Calling", "1979"));
System.out.print(c);
}
}
【问题讨论】:
-
如果这个问题不是以下问答的重复,那么它至少显示了如何统计:Sort Java Collection
-
问题是我不想使用列表
-
您必须使用列表或类似的东西。
Collection是一个接口,不能在上面调用new。 -
你想通过一些函数对其进行排序?
-
首先,您应该遵循 Java 命名约定。编写自己的名为
Collection的类真的很糟糕,因为它是JDK 中的一个接口。将其重命名为AlbumCollection。此外,您的名称方法应以小写字母开头,因此必须将public void Add (Album a)重命名为public void add (Album a)。顺便说一句,与您的问题相关的内容可以轻松编码。
标签: java arrays sorting object