gpt4 book ai didi

java - 根据 String 字段对 ArrayList 中的对象进行排序

转载 作者:行者123 更新时间:2023-12-02 04:45:03 29 4
gpt4 key购买 nike

伙计们!我正在为大学做类(class),但我被困在某件事上。我有一个类层次结构和一个 ArrayList,其中存储这些类的对象。我的代码打印出存储在 ArrayList 中的对象的详细信息,但我必须根据字符串字段打印它们,但我不知道该怎么做。我需要根据 LibraryItem 类中的标题字段打印详细信息,并且指定我需要使用 Java 类库。我查看了一些东西,根据我所看到的,我猜我需要使用 Comparable,但我不知道它是如何工作的......以下是部分代码:

public class LibraryItem {

private String title;
private String itemCode;
private int timesBorrowed;

...


public void printDetails()
{
System.out.println("\nTitle: " + title);
System.out.println("Item code: " + itemCode);
System.out.println("Cost: " + cost);
System.out.println("Times borrowed: " + timesBorrowed);
System.out.println("On loan: " + onLoan);
}
}

...

public abstract class AudioVisual extends LibraryItem{

private int playingTime;

public AudioVisual()
{
super();
playingTime = 80;
}

public void printDetails()
{
super.printDetails();
System.out.println("Playing time: " + playingTime);
}

...

public class CD extends AudioVisual{

private String artist;
private int noOfTracks;

public CD()
{
super();
artist = "The Animals";
noOfTracks = 9;
}
public void printDetails()
{
super.printDetails();
System.out.println("Artist: " + artist);
System.out.println("Number of tracks: " + noOfTracks);
}

...

public class DVD extends AudioVisual{

private String director;

public DVD()
{
director = "Director1";
}
public void printDetails()
{
super.printDetails();
System.out.println("Director: " + director);
}

...

public class Library
{
private ArrayList<LibraryItem> itemList;

public Library()
{
itemList = new ArrayList<LibraryItem>();
}

public void printAllDetails()
{
for (LibraryItem item: itemList)
{
item.printDetails();
}
}

CD 和 DVD 对象再次添加到 ArrayList 中。预先感谢您!

最佳答案

Collections.sort 过载这需要 Comparator ,你可以使用它,

 Collection.sort(items, new Comparator<LibraryItem>{
@Override
public int compare(LibraryItem a, LibraryItem b) {
return a.title.compareTo(b.title);
}
}

如果您使用 Java 8,则有一个不太详细的版本,使用 lambdas .

Collections.sort(items,(item1,item2) -> item1.title.compareTo(item2.title));

关于java - 根据 String 字段对 ArrayList 中的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29728756/

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