【发布时间】:2014-04-04 17:08:06
【问题描述】:
首先,我对我对 Java 及其术语的了解不足表示歉意。我将尽我所能。我正在尝试通过存储在数组中的变量对下面的数组eventStuff 进行排序。我为用户提供了三个选项可供选择,一个事件编号(字母,数字 x 3)、输入的客人数量(包括 5 到 100 个)和一个事件类型(包括 1 到 4 个)。我目前正在遭受如何做到这一点的完全精神障碍。我是否错误地设置了数组,或者有没有更简单的方法可以使用我目前所拥有的东西来做到这一点?感谢您的帮助!
更新:所以我已经掌握了所有数字排序,但字母数字(例如 A111)eventCodeString 超出了我的范围。我检查了几个论坛并应用了许多合理的解决方案,但它们要么无效要么抛出错误。在这一点上,我不确定我应该做什么。
package Chapter9;
import Chapter9.Event;
import javax.swing.JOptionPane;
import java.util.Arrays;
public class EventDemo
{
public static void main(String[] args)
{
callMotto();
int x;
Event[] eventStuff = new Event[8];
for(x = 0; x < 8; ++x)
{
eventStuff[x] = new Event();
eventStuff[x].setEventCodeString();
eventStuff[x].setGuests();
eventStuff[x].setContactNumber();
eventStuff[x].setEventStr();
}
//Sorting method start
String sorting;
int sortMethod;
sorting = JOptionPane.showInputDialog("Please chooose sorting method:\n"
+ "1 to sort by event number\n"
+ "2 to sort by number of guests\n"
+ "3 to sort by event type");
sortMethod = Integer.parseInt(sorting);
//Event number sorting start
if(sortMethod == 1)
{
}
//Event number sorting end
//Event guest sorting Start
if(sortMethod == 2)
{
}
//Event guest sorting end
//Event type sorting start
if(sortMethod == 3)
{
}
//Event type sorting end
//Sorting method end
}
public static void callMotto()
{
JOptionPane.showMessageDialog(null, "*******************************************************\n"
+ "* Carly's Makes The Food That Makes The Party! *\n"
+ "*******************************************************");
}
}
【问题讨论】:
-
由于看不到
setEventCodeString等方法,所以无法判断数组是否设置正确,但应该没问题。为每个数组元素单独调用new看起来很糟糕:为什么不在循环内eventStuff[x] = new Event();?要提供不同的排序方法,Event需要不同的Comparators。请阅读this tutorial,尤其是Comparator部分。 -
太好了,我会立即研究 Comparator。我将修改我的代码以反映您的建议。我最初确实尝试了
eventStuff[x] = new Event();,但收到了一个奇怪的错误。我没有进行故障排除,而是绕过它。糟糕的表演。 -
@Blaine 不,这没有任何区别。