Java LinkedList数组的setter和getter

Java LinkedList数组的setter和getter,java,Java,我有一个名为Entries的类,它包含我的构造函数及其getter和setter 在新课程中,我有: private LinkedList<Entry>[] Entries = new LinkedList[26]; public void changeNumber(String number, String numberChange) { for (int i = 0; i < myEntries.length; i++){ if (myEntrie

我有一个名为
Entries
的类,它包含我的构造函数及其getter和setter

在新课程中,我有:

private LinkedList<Entry>[] Entries = new LinkedList[26];

public void changeNumber(String number, String numberChange) {
  for (int i = 0; i < myEntries.length; i++){


        if (myEntries[i].getNumber().equals(number)){
            myEntries[i].setNumber(numberChange);
            break;
        }
    }
}
private LinkedList[]条目=新建LinkedList[26];
公共无效更改编号(字符串编号、字符串编号更改){
对于(int i=0;i
然而,我收到了我的二传手和传接手的错误。当我使用straight数组或straight
LinkedList
时,不会发生这种情况,因为我已经在两个不同的类中使用了这种方法

我收到的两个错误消息都是

未为LinkedList类型定义getNumber()方法 对于LinkedList类型,方法getNumber()未定义

我不明白为什么它们是未定义的,因为当我尝试对直接
数组
和纯
链接列表
执行相同的方法时,它们处理得很好,功能正常


如果有人有任何建议,我将不胜感激。

请密切关注您正在迭代的数据类型。因为
myEntries
被定义为
LinkedList[]
,所以当您在数组上迭代时,您将拉出一个单独的
LinkedList

看起来你真的不想要阵列;相反,只需直接迭代列表元素:

LinkedList<Entry> myEntries = new LinkedList<>();

for(Entry entry : myEntries) {
    if(entry.equals(number) {
        // logic
    }
}
LinkedList myEntries=新建LinkedList();
对于(条目:myEntries){
如果(条目)等于(数字){
//逻辑
}
}

请密切注意您正在迭代的数据类型。因为
myEntries
被定义为
LinkedList[]
,所以当您在数组上迭代时,您将拉出一个单独的
LinkedList

看起来您确实不想要数组;相反,只需直接迭代列表元素:

LinkedList<Entry> myEntries = new LinkedList<>();

for(Entry entry : myEntries) {
    if(entry.equals(number) {
        // logic
    }
}
LinkedList myEntries=新建LinkedList();
对于(条目:myEntries){
如果(条目)等于(数字){
//逻辑
}
}

myEntries[i]返回一个LinkedList,该列表没有setNumber方法。您需要从列表中获取条目,然后调用这些方法


myEntries[i].get(index).setNumber();或myEntries[i].getFirst().setNumber();etc

myEntries[i]返回一个LinkedList,但它没有setNumber方法。您需要从列表中获取条目,然后调用这些方法


myEntries[i].get(index).setNumber();或myEntries[i].getFirst().setNumber();etc

您试图在
链接列表
实例上调用您的访问器/变异器(
getNumber()
&
setNumber
),并且由于
链接列表
没有此类方法,您将报告错误

因此,要么使用
get()
方法访问某个
LinkedList
项,该方法将返回一个
条目
对象,您可以在该对象上调用setter和getter:

public void changeNumber(String number, String numberChange) {
  int index = 0; //not sure what this index should be in your case
  for (int i = 0; i < myEntries.length; i++){
    if (myEntries[i].get(index).getNumber().equals(number)){
      myEntries[i].get(index).setNumber(numberChange);
      break;
    }
  }
}
然后您的
changeNumber()
方法将符合以下条件:

public void changeNumber(String number, String numberChange) {
  for (int i = 0; i < myEntries.length; i++){
    if (myEntries[i].getNumber().equals(number)){
      myEntries[i].setNumber(numberChange);
      break;
    }
  }
}
public void changeNumber(字符串编号、字符串编号更改){
对于(int i=0;i
您正试图在
LinkedList
实例上调用您的访问器/变异器(
getNumber()
&
setNumber
),由于
LinkedList
没有此类方法,您将报告错误

因此,要么使用
get()
方法访问某个
LinkedList
项,该方法将返回一个
条目
对象,您可以在该对象上调用setter和getter:

public void changeNumber(String number, String numberChange) {
  int index = 0; //not sure what this index should be in your case
  for (int i = 0; i < myEntries.length; i++){
    if (myEntries[i].get(index).getNumber().equals(number)){
      myEntries[i].get(index).setNumber(numberChange);
      break;
    }
  }
}
然后您的
changeNumber()
方法将符合以下条件:

public void changeNumber(String number, String numberChange) {
  for (int i = 0; i < myEntries.length; i++){
    if (myEntries[i].getNumber().equals(number)){
      myEntries[i].setNumber(numberChange);
      break;
    }
  }
}
public void changeNumber(字符串编号、字符串编号更改){
对于(int i=0;i
myEntries[i].get(listIndex).getNumber()
,no?
getNumber()
应该是对象
项的方法(而不是
LinkedList
)。您应该真正了解数组和LinkedList之间的区别,因为您使用的是LinkedList数组(可能是冗余的).是变量
条目
myEntries
myEntries[i]的真实名称。get(listIndex)。getNumber()
,no?
getNumber()
应该是对象
条目
的方法(而不是
LinkedList
)。您应该真正了解数组和LinkedList之间的区别,因为您使用的是LinkedList数组(可能是冗余的)。变量
条目的真实名称是
还是
myEntries