所以我的作业分配是:(双链表)实现一个包含整数值的双向链表.使用值[11,22,77,44,55,66,33]填充列表.显示列表的内容.写一个方法将值分成奇数,甚至更晚.在我们的例子中,重新排序的列表应该是:[11,77,55,33,22,44,66].
我可以让它工作并为最多6个数字做它应该做的事情,但是添加第7个数字就是错误了.
Exception in thread "main" java.lang.NullPointerException
at MyList.sortData(MyList.java:100)
at Driver.main(Driver.java:24)
public class Driver {
/**
* @param args
*/
public static void main(String[] args) {
MyList<Integer> list = new MyList<Integer>();
list.add(11);
list.add(22);
list.add(77);
list.add(44);
list.add(55);
list.add(66);
list.add(33);
System.out.println("<<Original Data>>");
list.showData();
System.out.println();
System.out.println("<<Sorted Data>>");
list.sortData(list);
list.showData();
}
}
public class MyList<E>{
private Node<E> head;
private Node<E> tail;
int count;
public MyList(){
head = null;
tail = null;
count = 0;
}
public Node<E> add(E newData){
Node<E> current = new Node<E>(newData); …Run Code Online (Sandbox Code Playgroud) 我必须编写一个从命令行获取其参数的程序.有3个班级.主应用程序类,定义名人堂的每个成员的类,然后是名人堂的类,创建一系列名人堂成员.HallOFFameMember类的属性是firstName,lastName,yearInducted和sport.我必须在HallOfFame类中编写一个排序方法,按年度进行排序.我试图用类似的实用程序来解决它,但我认为这不会起作用.
这是分配的一部分,写了排序,所以我不能使用Array.sort()或类似的东西.
"还在HallOfFame类中定义一个名为sortMembers的方法,该方法返回一个HallOfFameMember对象数组,其中包含成员数组中的对象,按归纳年份排序.注意:在sortMembers方法中完成的排序不应使用排序来自API的方法.你要编写自己的排序例程(冒泡排序,例如,可以接受)."
我不确定如何编写数组中对象属性的排序.任何帮助指导我到哪里可以弄清楚如何做到这一点将不胜感激.我发现的一切都指向使用我无法使用的Array.sort和compareTo方法.
**编辑**问题是有人可以指出我可以阅读的地方或找到如何编写我自己的排序以按对象数组中的属性排序的示例吗?我看看使用可比较的建议,因为这是我最初倾向于,只是不能让它工作.
public class HW3 {
public static void main(String[] args) throws Exception {
if (args.length % 4 != 0) {
throw new Exception(
"First Name, Last Name, Year Inducted, Sport not entered correctly");
}
HallOfFame hallOfFameList = new HallOfFame();
hallOfFameList.setNumberOfMembers(args.length / 4);
HallOfFameMember[] tempMembers = new HallOfFameMember[args.length / 4];
for (int i = 0; i < args.length; i += 4) {
tempMembers[i/4].setFirstName(args[i]);
tempMembers[i/4].setLastName(args[i+1]);
tempMembers[i/4].setYearInducted(Integer.parseInt(args[i+2]));
tempMembers[i/4].setSport(args[i+3]);
}
hallOfFameList.setMembers(tempMembers);
HallOfFameMember[] sortedMembers = null;
hallOfFameList.sortMembers(sortedMembers);
HallOfFame.printReport(sortedMembers);
}
}
public …Run Code Online (Sandbox Code Playgroud) 好的,所以我有一个家庭作业.我以为我的一切都很好,而且我得到了一个
"Exception in thread "main" java.lang.NullPointerException at HW3.main<HW3.java:18>
那条线是:
tempMembers[i/4].setFirstName(args[i]);
Run Code Online (Sandbox Code Playgroud)
现在我在编程时仍然是一个菜鸟,直到我完成这一切的所有事情都在Eclipse中.该程序将在文本编辑器中创建,然后在命令提示符下编译和运行.我不知道我是否只是错误地输入了参数或者不是.
因此,对于此错误,我的命令提示符条目是
java HW3 Bill Smith 2009 Football Jane Doe 2000 Tennis David Jones 1995 Baseball
Run Code Online (Sandbox Code Playgroud)
我的代码或输入中的错误也是如此?如果错误在我的代码中,你能指出我正确的方向吗?就像我说的那样,命令行参数对我来说是全新的,而我的班级并没有做任何这方面的例子,只是讨论概念.
public class HW3 {
public static void main(String[] args) throws Exception {
if (args.length % 4 != 0) {
throw new Exception(
"First Name, Last Name, Year Inducted, Sport not entered correctly");
}
HallOfFame hallOfFameList = new HallOfFame();
hallOfFameList.setNumberOfMembers(args.length / 4);
HallOfFameMember[] tempMembers = new HallOfFameMember[args.length / 4];
for (int i = 0; …Run Code Online (Sandbox Code Playgroud)