两个类一个写入对象.一个读入对象
还需要一个词典,写几个词作测试
还需要一个词典,写几个词作测试
美人计
美人蕉
美人鱼
美容美发店
美容师
美容术
美容院
美声
美食
美食城
美食家
美事
美术
美术馆
美术家
美术界
美术年
美术片
美术品
美术师
美术室
美术纸
美术字
美谈
美味
美文
美协
美学
美学家
美意
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class Test {
private static Set[] sets = new TreeSet[65535] ;
private static List lists = new ArrayList() ;
public static void main(String[] args) throws IOException {
File file = new File("") ;
System.out.println(file.getAbsolutePath());
InputStream is = new FileInputStream("chinese.dct") ;
InputStreamReader isr = new InputStreamReader(is) ;
BufferedReader br = new BufferedReader(isr) ;
String temp = null ;
int k = 0 ;
while((temp = br.readLine())!=null){
char[] cs = temp.toCharArray() ;
for (int i = 0; i < cs.length; i++) {
if(sets[cs[i]]==null){
sets[cs[i]] = new TreeSet<Integer>() ;
}
sets[cs[i]].add(k) ;
}
lists.add(temp) ;
k++ ;
}
is.close() ;
isr.close() ;
br.close() ;
FileOutputStream fis = new FileOutputStream("index.ansj") ;
ObjectOutputStream oos = new ObjectOutputStream(fis) ;
oos.writeObject(sets) ;
}
}
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.util.Iterator;
import java.util.Set;
public class Read {
public static void main(String[] args) throws IOException, ClassNotFoundException {
InputStream is = new FileInputStream("index.ansj") ;
ObjectInputStream ois = new ObjectInputStream(is) ;
Set[] sets = (Set[]) ois.readObject() ;
long start = System.currentTimeMillis() ;
Set s1 = sets['美'];
Set s2 = sets['术'];
Iterator it = s2.iterator() ;
int[] ints = new int[10] ;
int k = 0 ;
while(it.hasNext()){
Integer i = (Integer) it.next() ;
if(s1.contains(i)){
ints[k] = i ;
k++ ;
if(k==10) break ;
}
}
System.out.println(System.currentTimeMillis()-start+"毫秒");
for (int i = 0; i < ints.length; i++) {
System.out.println(ints[i]);
}
}
}