Java 链接列表有问题吗
我正在尝试创建一个程序,用户可以将整数添加到链表中,然后它将计算最大的数字是什么,最小的数字是什么,数字的和是什么,等等。。。我在这方面遇到了一些麻烦,我发现链接列表非常混乱,我希望有人能帮助我找出我做错了什么Java 链接列表有问题吗,java,Java,我正在尝试创建一个程序,用户可以将整数添加到链表中,然后它将计算最大的数字是什么,最小的数字是什么,数字的和是什么,等等。。。我在这方面遇到了一些麻烦,我发现链接列表非常混乱,我希望有人能帮助我找出我做错了什么 import java.util.*; public class UnorderedLinkedListInt extends LinkedListIntClass { int size=0; LinkedList<Integer> list; public b
import java.util.*;
public class UnorderedLinkedListInt extends LinkedListIntClass {
int size=0;
LinkedList<Integer> list;
public boolean isEmptyList(){
if(size==0){
return true;
}else{return false;}
}
public void initializeList(){
list = new LinkedList<Integer>();
}
public void print(){
for(int x : list){
System.out.printf("%s ",x);
}
}
public int length(){
return size;
}
public int front(){
return list.getFirst();
}
public int back(){
return list.getLast();
}
public void insertFirst(int newItem){
list.addFirst(newItem);
}
public void insertLast(int newItem){
list.addLast(newItem);
}
public boolean search(int searchItem){
return list.contains(searchItem);
}
public void deleteNode(int deleteItem){
list.remove(deleteItem);
}
public int findSum(){
int sum =0;
for(int x:list){
sum=sum+x;
}
return sum;
}
public int findMin(){
int min =list.get(0);
for(int i=1;i<list.size();i++){
if(list.get(i)<min){
min=list.get(i);
}
}
return min;
}
public int findMax(){
int max=list.get(0);
for(int i=1;i<list.size();i++){
if(list.get(i)>max){
max=list.get(i);
}
}
return max;
}
}
添加或删除项时,不会更新size变量,如果可能,您应该只使用List类的现有方法(size()、isEmpty()等)
你也可能是这场战争的受害者。因为您的列表包含整数(对象),所以您需要根据传递的是索引还是“值”对象来验证是否调用了列表类的适当方法。该方法通常会让人不知所措,因为它重载了,并且可以为列表中的项目使用基本int进行索引,也可以使用整数对象。您必须调用initializeList()或创建一个构造函数来创建链接列表并使其保持正确的默认状态
public UnorderedLinkedListInt() {
super();
initializeList();
}
除了这里(到目前为止)的另外两个答案之外,我将在客户机类的倒数第二行添加它
System.out.print("Testing .toString. After deleting " + num + ", the list is: " + intList);
您的代码按原样打印出Testing.toString。删除1后,列表为:UnorderedLinkedListInt@4a5a12f5
我想您可以理解为什么这可能是不可取的
尝试编写格式化列表的
toString()
方法;然后,您包含的代码将起作用。您应该告诉我们具体的错误或问题。这是我们需要通过的大量代码。请不要假设我们自动知道您所说的“错误”是什么意思。如果它是编译的,请包括输入和输出示例。您实际遇到了什么问题?您是否看到错误/异常?期望的行为和实际的行为是什么?你给出了代码,很好。但您需要提供有关问题的详细信息。来来去去去,“这不管用。帮帮我。”就像去看医生说,“我感觉不太好。”给出细节!“当我这样做时,它就会那样做。”等等。当我运行程序时,它会要求我“输入整数(999停止)”当我输入一个整数时,我会得到以下错误:size变量甚至不是必需的——size()是LinkedList类中的内置方法。@La comadreja我同意不需要该变量,但它存在并正在使用中。最好只使用list.size()(这也适用于isEmpty())
System.out.print("Testing .toString. After deleting " + num + ", the list is: " + intList);