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数组或straightLinkedList
时,不会发生这种情况,因为我已经在两个不同的类中使用了这种方法
我收到的两个错误消息都是
未为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();etcmyEntries[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
?