我在文件中管道并将其存储到树集中。我想要算上独特的词...... 我把我不想要的单词放在一个hashset中。 “a”,“the”,“and”
我想在将文件放入之前检查文件是否包含这些文字 树集.. 我知道我需要某种if(word == find)?我只是不知道该怎么做..
抱歉格式化。粘贴后很难弄清楚。
这就是我的......
import java.util.Scanner;
import java.util.ArrayList;
import java.util.TreeSet;
import java.util.Iterator;
import java.util.HashSet;
public class Project1
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String word;
String grab;
int count = 0;
int count2 =0;
int count3 =0;
int count4 =0;
int number;
TreeSet<String> a = new TreeSet<String>();
HashSet<String> find = new HashSet<String>();
System.out.println("Project 1\n");
find.add("a");
find.add("and");
find.add("the");
while (sc.hasNext())
{
word = sc.next();
word = word.toLowerCase();
for(int i = 0; i < word.length(); i++ )
{
if(Character.isDigit(word.charAt(i)))
{
count3++;
}
}
//if( a.contains("a") )
//|| word.matches("and") || word.matches("the")|| word.contains("$"))
//{
// count2++;
// }
a.add(word);
if (word.equals("---"))
{
break;
}
}
System.out.println("a size");
System.out.println(a.size());
// count = count2 - count;
System.out.println("unique words");
System.out.println(a.size() - count2 - count3);
System.out.println("\nbye...");
}
}
答案 0 :(得分:3)
我看到你在整个项目中都使用了SO。
您可以采取以下措施:
if(!find.contains(word)){
//addTheWord
}
答案 1 :(得分:1)
这与你的问题有些相关,但要学习code to the interface永远不会太早。在您的示例中,
TreeSet<String> a = new TreeSet<String>();
HashSet<String> find = new HashSet<String>();
可能会更好
Set<String> uniqueWords = new TreeSet<String>();
Set<String> trivialWords = new HashSet<String>();
使用接口类型将重点放在两个集合的Set
功能上。随着程序的发展,它还允许您在以后轻松选择不同的实现。描述性名称也是一个好习惯。
答案 2 :(得分:0)
要查找元素: HashSet:using contains()需要O(c) - 常量时间 TreeSet:using contains()需要O(log n) - log n&gt;&gt; c(取决于)
如果经常需要查找元素的自然顺序,请使用TreeSet。否则,使用HashSet。