gpt4 book ai didi

java - Netbeans java 使用 Comparable 排序

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:41 25 4
gpt4 key购买 nike

我一直在尝试使用 Comparable 接口(interface)对 ArrayList 进行排序。如果您有任何很棒的提示/修复,我似乎无法让它工作!

这里是 company(bedrijf) 类,它包含一个 ArrayList of employees(werknemers):

package nl.hva.oop1.bedrijf.models;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Bedrijf {
private String naam;
private List<Persoon> medewerkers = new ArrayList<Persoon>();

public Bedrijf (String naam) {
this.naam = naam;
}

public void printInkomsten() {
String inkomstenText = "Inkomsten van alle personen: ";

Collections.sort(medewerkers); //I want to sort the ArrayList here

for (Persoon p : medewerkers) {
if (p.berekenInkomsten() != 0)
inkomstenText += "\n\t" + p.toString() + ", inkomsten: " + p.berekenInkomsten();
else
inkomstenText += "\n\t" + p.toString() + ", bedankt voor uw inzet!";
}

System.out.println(inkomstenText);
}

public int aantalManagers() {
int managers = 0;

for(Persoon p : medewerkers) {
if(p instanceof Manager)
managers++;
}

return managers;
}

public void neemInDienst(Persoon p) {
this.medewerkers.add(p);
}

@Override
public String toString() {
String bedrijfText = "Bedrijf HvA heeft " + medewerkers.size() + " medewerkers: ";

for (Persoon p : medewerkers) {
bedrijfText += "\n\t" + p.toString();
}

return bedrijfText + "\n" ;
}
}

这里是抽象人(persoon)类(有子类):

package nl.hva.oop1.bedrijf.models;

public abstract class Persoon implements Comparable<Persoon> {
private String naam;

public Persoon(String naam) {
this.naam = naam;
}

public abstract double berekenInkomsten();

@Override
public int compareTo(Persoon p) {
return this.naam.compareTo(p.naam);
}

@Override
public String toString() {
return naam;
}
}

还有 Comparable 接口(interface):

package nl.hva.oop1.bedrijf.models;

public interface Comparable<E> {
public int compareTo(E o);
}

最佳答案

这是你的错误:

And the Comparable interface:

package nl.hva.oop1.bedrijf.models;

public interface Comparable<E> {
public int compareTo(E o);
}

不要创建自己的 Comparable 接口(interface)。而是使用 Comparable interface provided by Core Java .这是 Collections.sort(...) 唯一能识别的。

关于java - Netbeans java 使用 Comparable 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41133580/

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