【发布时间】:2014-07-23 21:53:39
【问题描述】:
我一直在尝试在 java 中使用二次排序来对消息数组列表进行排序。 我使用了以下代码,但它不会为我编译。我不断收到的错误是
找不到变长的符号
以下是我使用的排序和交换:
public static void quadraticSort(ArrayList<Message> m)
{
String s1 = "abcd";
String s2 = "efgh";
int val = "abcd".compareTo("efgh");
for (int i = 0; i < s1.length; i += 1)
{
for (int s2 = i; s2 < s1.length; s2 += 1)
{
if ((int)s1[s2].messageText.compareTo(0) <(int)s2[i].messageText.compareTo(0))
{
swap(s1, i, s2);
}
}
}
}
private static void swap(ArrayList<Message> list, int to, int from)
{
Message temp = list[to];
list.set(to , from);
list.set(from , temp);
}
【问题讨论】:
-
字符串实例没有
length字段。但是,他们有一个length()方法。 -
您还尝试在
String上使用索引器,但这是行不通的。 -
是的。 Java 中的字符串的行为不像数组,它们是对象。使用
"hello".charAt(0)而不是"hello"[0]。