这就是我所拥有的。我正在尝试将名称值添加到indexStruct类型的ArrayList中,并且不知道如何执行此操作。 Name是一个String,任何帮助都会很棒。谢谢!
import java.util.ArrayList;
public class Currentindex {
public void indexedWords(String currentWord, ArrayList <Indexstruct> currentIndex){
int convoMax=currentIndex.size();
int convoMin=0;
int placeHolder;
int strComp;
//pull words to skip that appear frequently in a typical conversation
while(convoMax>convoMin){ //binary search
placeHolder=(convoMin+convoMax)/2;
strComp=currentWord.compareToIgnoreCase(currentIndex.get(placeHolder).Word);
if(strComp==0){
currentIndex.add(placeHolder, Word); //<--Where problem occurs
break;
}
else if(strComp<0){
convoMax=placeHolder-1;
}
else{
convoMin=placeHolder+1;
}
}
//addterm(currentIndex);
System.out.println(currentIndex);
}
}
答案 0 :(得分:2)
我正在尝试将名称值添加到indexStruct类型的ArrayList。
特定的ArrayList只能添加类型为indexStruct
的元素。
这意味着,它们是:
唯一可以插入字符串的方法是,如果indexStruct对象中有字符串字段。
您将创建此类对象,并指定名称。然后将此对象添加到arraylist。
currentIndex.add(placeHolder, Word);
调用currentIndex.add(placeHolder, Word); //<--Where problem occurs
的问题在于Word
变量不存在。
我假设您将currentWord与placeHolder中的特定元素进行比较,然后希望在它们相等时重新插入相同的Word(忽略大小写)。 如果您将行更改为:
,这应该有效currentIndex.add(placeHolder, currentIndex.get(placeHolder));
您基本上会在indexStruct
位置输入同一placeHolder
个对象的另一个实例。
另外,我建议你研究一下iterators
或增强型for loops
,它们针对迭代ArrayLists
进行了优化。
请参阅:
答案 1 :(得分:0)
您正在使用
由于Indexstruct.word类型与ArrayList不兼容,您遇到问题。
试试这个 添加 currentIndex.add(placeHolder,new Indexstruct(word)); 或者将word设置为新构造的Indexstruct对象,然后添加该对象。