Java 创建了一种方法来计算获胜最多的团队和获胜百分比

Java 创建了一种方法来计算获胜最多的团队和获胜百分比,java,class,linked-list,Java,Class,Linked List,我正在第二学期的Java课上学习如何使用链表。在我们的程序中,我们应该编写一个类来封装足球队胜负的概念 我需要帮助的部分是创建一个方法,该方法返回三个获胜最多的球队的昵称,另一个方法根据获胜百分比返回五个最佳球队的昵称 团体课 public class Team { private int GamesWon; private int GamesLost; private String Team; public Team (int i, int j, String

我正在第二学期的Java课上学习如何使用链表。在我们的程序中,我们应该编写一个类来封装足球队胜负的概念


我需要帮助的部分是创建一个方法,该方法返回三个获胜最多的球队的昵称,另一个方法根据获胜百分比返回五个最佳球队的昵称

团体课

public class Team
{
    private int GamesWon;
    private int GamesLost;
    private String Team;

    public Team (int i, int j, String k)
    {
        GamesWon = i;
        GamesLost = j;
        Team = k;
    }

    public int getGamesWon()
    {
        return GamesWon;
    }
    public int getGamesLost()
    {
        return GamesLost;
    }
    public String getTeam()
    {
        return Team;
    }
    public void setGamesWon(int i)
    {
        GamesWon = i;
    }
    public void setGamesLost(int j)
    {
        GamesLost = j;
    }
    public void setTeam(String k)
    {
        Team = k;
    }
    public String toString()
    {
        return("Team: " + Team + "\tGamesWon: " + GamesWon + "\tGamesLost: " + GamesLost);
    }
}
TeamNode类

public class TeamNode 
{
    private Team team;
    private TeamNode next;

public TeamNode()
{
    team = null;
    next = null;
}

public TeamNode(Team t)
{
    setTeam(t);
    next = null;
}


public Team getTeam()
{
    return team;
}

public TeamNode getNext()
{
    return next;
}

public void setTeam(Team t)
{
    team = t;
}

public void setNext(TeamNode tn)
{
    next = tn;
}



}
ShellLinkedList

public abstract class ShellLinkedList
{
    protected TeamNode head;
    protected int numberOfItems;

public ShellLinkedList()
{
    head = null;
    numberOfItems = 0;
}

public int getNumberOfItems()
{
    return numberOfItems;
}

public boolean isEmpty()
{
    return (numberOfItems == 0);
}
public String toString()
{
    String listString = "";
    TeamNode current = head;
    while (current != null)
    {
        listString += current.getTeam().toString() + "\n";
    current = current.getNext();
    }
    return listString;
}

}
DataStructureExctionError类

public class DataStructureException extends Exception
{
public DataStructureException(String s)
{
    super(s);
}
}
团队链表类

public class TeamLinkedList extends ShellLinkedList
{
public TeamLinkedList()
{
    super();
}
public void insert(Team t)
{
    TeamNode tn = new TeamNode(t);
    tn.setNext(head);
    head = tn;
    numberOfItems++;
}
public Team delete(String searchName)
                        throws DataStructureException
{
    TeamNode current = head;
    TeamNode previous = null;
    while (current != null && current.getTeam().getTeam() != searchName)
    {
        previous = current;
        current = current.getNext();
    }

    if (current == null)
        throw new DataStructureException(searchName + " not found: cannot be deleted");
    else
    {
        if (current == head)
            head = head.getNext();
        else
            previous.setNext(current.getNext());
            numberOfItems--;
        return current.getTeam();
    }
}
}
客户端类

public class TeamLinkedListTest 
{
    public static void main(String [] args)
    {

        Team t1 = new Team (10, 0, "Patriots" );
        Team t2 = new Team (9, 1, "49ners");
        Team t3 = new Team (8, 2, "Chargers");
        Team t4 = new Team (7, 3, "Bengals");
        Team t5 = new Team (6, 4,"Jets");
        Team t6 = new Team (5, 5, "Raiders");
        Team t7 = new Team (4, 6, "Seahawks");
        Team t8 = new Team (3, 7, "Cardinals");
        Team t9 = new Team (2, 8, "Texans");
        Team t10 = new Team(1, 9, "Dolphins");

        TeamLinkedList Team = new TeamLinkedList();
        System.out.println("Number of items in the list: " + Team.getNumberOfItems() + "\n" + Team.toString());

        Team.insert(t1);
        System.out.println("Number of items in the list: " + Team.getNumberOfItems() + "\n" + Team.toString());

        Team.insert(t2);
        System.out.println("Number of items in the list: " + Team.getNumberOfItems() + "\n" + Team.toString());

        Team.insert(t3);
        System.out.println("Number of items in the list: " + Team.getNumberOfItems() + "\n" + Team.toString());

        Team temp;

        try
        {
            temp = Team.delete("Bengals");
            System.out.println("Team deleted: " + temp);
        }
        catch(DataStructureException dse1)
        {
            System.out.println(dse1.getMessage() + "\n");
        }

        try
        {
            temp = Team.delete("Patriots");
            System.out.println("Deleted " + temp);
            System.out.println("Number of items in the list: " + Team.getNumberOfItems() + "\n" + Team.toString());

            temp = Team.delete("49ners");
            System.out.println("Deleted " + temp);
            System.out.println("Number of items in the list: " + Team.getNumberOfItems() + "\n" + Team.toString());

            temp = Team.delete("Chargers");
            System.out.println("Deleted " + temp);
            System.out.println("Number of items in the list: " + Team.getNumberOfItems() + "\n" + Team.toString());

            temp = Team.delete("Patriots");
            System.out.println("Deleted " + temp);
            System.out.println("Number of items in the list: " + Team.getNumberOfItems() + "\n" + Team.toString());
        }
        catch(DataStructureException dse2)
        {
            System.out.println(dse2.getMessage());
        }

    }
}

简短的回答。您可以使用Collections.sort执行此操作

更长的回答。在团队类中,必须重写compareTo方法

在这之后,您可以像下面这样调用链表上的sort方法 Collections.sortmyLinkedList

public abstract class ShellLinkedList
{
    protected TeamNode head;
    protected int numberOfItems;

public ShellLinkedList()
{
    head = null;
    numberOfItems = 0;
}

public int getNumberOfItems()
{
    return numberOfItems;
}

public boolean isEmpty()
{
    return (numberOfItems == 0);
}
public String toString()
{
    String listString = "";
    TeamNode current = head;
    while (current != null)
    {
        listString += current.getTeam().toString() + "\n";
    current = current.getNext();
    }
    return listString;
}

}

最后,您可以打印出前三个节点,因为它们现在已经排序了

您的问题是什么?我需要帮助的部分是创建一个方法,返回三个获胜最多的球队的昵称,另一个根据获胜百分比返回五个最佳球队的昵称。我不确定如何对这些方法进行编码请删除所有不正确的代码回答你的问题很重要。要回答这个问题,您只需要浏览链接列表,并拥有一个数组列表或等效的数据结构来存储最好的团队。你试图回答什么问题?@JeremyD我不知道从哪里开始,因为我说过我对LinkedList是全新的。我应该在哪个类中创建此方法?