这样子不可以:(40行左右处)
import java.util.*;
import java.io.*;
class Node
{ public String str;
public int count;
Node(String str,int count)
{
this.str=str;
this.count=count;

}
class Count
{
public static void main(String []args)
{
try{

BufferedReader infile=new BufferedReader(new FileReader("D://temp.txt"));
TreeMap wordMap=new TreeMap();
String oneLine;
    int count=1;
while((oneLine=infile.readLine())!=null)
{
Integer str=(Integer)wordMap.get(oneLine);
if(str==null)
{count=1;
wordMap.put(oneLine,new Integer(count));
}
else{
count=str.intValue()+1;
wordMap.put(oneLine,new Integer(count));
}
}
ArrayList arrayList=new ArrayList();
Map.Entry entry;
Node node;
for(Iterator itr=wordMap.entrySet().iterator();itr.hasNext();)
{
entry=(Map.Entry)itr.next();
   node=new Node(entry.gerKey(),((Integer)entry.getValue()).intValue());//
  // node=new Node();
  // node.str=(String)entry.getKey();
  // node.count=((Integer)entry.getValue()).intValue();
   arrayList.add(node);
}
}
catch (Exception e)
{
System.out.print(e);
}

}
}
而这样子可以:
import java.util.*;
import java.io.*;
class Node
{ public String str;
public int count;

}
class Count
{
public static void main(String []args)
{
try{

BufferedReader infile=new BufferedReader(new FileReader("D://temp.txt"));
TreeMap wordMap=new TreeMap();
String oneLine;
    int count=1;
while((oneLine=infile.readLine())!=null)
{
Integer str=(Integer)wordMap.get(oneLine);
if(str==null)
{count=1;
wordMap.put(oneLine,new Integer(count));
}
else{
count=str.intValue()+1;
wordMap.put(oneLine,new Integer(count));
}
}
ArrayList arrayList=new ArrayList();
Map.Entry entry;
Node node;
for(Iterator itr=wordMap.entrySet().iterator();itr.hasNext();)
{
entry=(Map.Entry)itr.next();
// System.out.println(entry.getKey()+":  "+entry.getValue());
  // node=new Node(entry.gerKey(),((Integer)entry.getValue()).intValue());
   node=new Node();
   node.str=(String)entry.getKey();
   node.count=((Integer)entry.getValue()).intValue();
   arrayList.add(node);
}
}
catch (Exception e)
{
System.out.print(e);
}

}
}
为什么??

解决方案 »

  1.   

    node=new Node(entry.gerKey(),((Integer)entry.getValue()).intValue());//
    Node的构造函数需要的第一个参数是String类型的, 你这里的参数是entry.getKey(),应该是Object类型的,当然不匹配。
    如果改成
    node=new Node((String)entry.getKey(),((Integer)entry.getValue()).intValue());//
    应该就可以了。
      

  2.   

    node=new Node((String)entry.getKey(),((Integer)entry.getValue()).intValue());//这句不是注释掉了,还有关系吗?
      

  3.   

    to:afrag()用了你说的方法,还是 一样
      

  4.   

    我试过了,改成
    node=new Node((String)entry.getKey(),((Integer)entry.getValue()).intValue());//
    就不会报错了啊!
    你的错误的现象是什么?
    另外,你原来的代码里面的entry.gerKey()写错了,应该是entry.getKey().