public ArrayList<String> getWords()
{
int size1 = lines.size();
int size2 = 0;
int counter3 = 0;
ArrayList<Integer> checkthewords;
for (int x = 0; x < size1; x++)
{
size2 = lines.get(x).substring(x).length();
for (int y = 0; y < size2; y++)
{
if (Character.isLetter(charAt(((lines.get(x)).indexOf(x, z + x)))))
{
words.set(z, lines.get(x).substring(x,z + 1));
}
else
{
checkthewords.set(counter3, words);
counter3++;
}
if (checkthewords.get(x).equals(checkthewords.get(counter3)))
{
}
}
}
return words;
}
上面的方法叫做getWords()。我试图从文件中获取一个单词并将其存储在arrayList中检查单词。我想确保一个单词不会存储在arrayList中多次检查单词。
我有if语句:
if (Character.isLetter(charAt(((lines.get(x)).indexOf(x, z + x)))))
但是,不知道从哪里去。
答案 0 :(得分:0)
如果不允许重复,您应该使用Java中的Set来存储元素。
不包含重复元素的集合。
如果您想保留广告订单,请使用LinkedHashSet 这是Set界面的哈希表和链接列表实现,具有可预测的迭代顺序。
请参阅以下教程以了解Set在java中的应用。
Tutorial 1
Tutorial 2
Tutorial 3
参见 - :
HashSet vs TreeSet vs LinkedHashSet
HashSet vs LinkedHashSet
答案 1 :(得分:0)
我很确定你的代码目前还不会运行。你在那里做了一些奇怪的事情,我真的不明白。
尝试一次接近这一步。
第一步是从文件中获取单词。确保您可以解析checkthewords
并提取所需的单词。
然后,您需要检查contains
列表中是否存在该词。如果它不存在,请添加它。您可以使用List
提供的if(!checkthewords.contains(word)) {
// it's not in the list yet, add it
checkthewords.add(word);
}
方法查看列表是否包含某些内容。
checkthewords
另外,当您创建ArrayList<String> checkthewords;
列表时,不要对其进行初始化(因此它为空):
ArrayList<String> checkthewords = new ArrayList<String>();
应该是:
checkthewords.set()
你不应该那样使用set
。 ArrayIndexOutOfBoundsException
用于替换现有元素,而不是添加新元素。您可以轻松设置一个尚不存在的元素并抛出checkthewords.add(word)
。使用set(int index, E element)
在列表中添加内容。
<ChildComponent btnClick={this._getGps.bind(this, navigator)} navigator={navigator} />
使用指定的元素替换此列表中指定位置的元素。
看起来你正在过度思考这个问题。把事情简单化。 :)