public static void quadraticSort(Message[] m)
{
for (int i = 0; i < m.length; i +=1)
{
for (int j = 0; j < m.length; j += 1)
{
int k = m[i].compareTo(m[j]);
if (k < 0)
{
swap(s, i, j);
}
}
}
}
消息类
enum Subject {PERSONAL, FAMILY, WORK, GENERAL}
//Q4 Task 5
public class Message
{
String messageText;
User from;
User to;
Subject subject;
public Message(Subject subject, User from, User to, String messageText)
{
this.subject = subject;
this.from = from;
this.to = to;
this.messageText = messageText;
}
public void displayMessage()
{
String nameFrom = from.firstName;
String nameTo = to.firstName;
System.out.println("Message subject: " + subject+ " "+ nameFrom + " says \""+messageText + "\" to " + nameTo);
}
public void displayMessageContent()
{
System.out.println(messageText);
}
}
我的问题是关于compareTO我似乎无法让它发挥作用。它不断弹出找不到符号比较(消息)
我这是一个完全的菜鸟,所以任何帮助都会非常感激。 我对时间的问候。
这是家庭作业的问题,也许它会清除这个区域
在MessageSort中编写一个方法来对消息数组进行排序。
答案 0 :(得分:1)
您没有compareTo方法
将您的班级更改为:
public class Message implements Comparable {
....
然后在你的类中实现compareTo()方法。
答案 1 :(得分:0)
public static void quadraticSort(Message[] m)
{
for (int i = 0; i < m.length; i += 1)
{
for (int j = i; j < m.length; j += 1)
{
String a = m[i].messageText;
String b = m[j].messageText;
int k = b.compareTo(a);
if( k < 0)
{
swap(m, i, j);
}
}
}
}
private static void swap(Message[] arMsg, int to, int from)
{
Message temp = arMsg[to];
arMsg[to] = arMsg[from];
arMsg[from] = temp;
}
只有messageText部分是一个String,这段代码会修复你的compareTo只会考虑messageText。如果你想看看,我已经包含了我的交换。