Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 链接列表有问题吗_Java - Fatal编程技术网

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);