不适用于表达式类型错误?

时间:2014-04-16 23:15:33

标签: java hashmap treemap

我已经发布了这个问题,但我已经回去并且经常更改了我的代码。我收到一个我不明白的新错误。我求助了,但TA也不理解。在for循环中我的.get方法给出了一个错误。我试过在java API上查找并发现了一个.values。我试过了,但它仍然没有用。该错误说明特别不适用于表达式类型它说需要数组或java.lang.Iterable但找到了String。

import java.io.*;
import java.util.*;

// N O   C O M M A N D  L I N E   A R G S!
// A L L   F I L E N A M E S  M U S T  B E  H A R D C O D E D

public class Pacs
{
public static void main( String args[] ) throws Exception
{
        BufferedReader pacsFile = new BufferedReader( new FileReader( "pacs.txt" ) );
        BufferedReader membersFile = new BufferedReader( new FileReader( "members.txt" ) );
        TreeMap<String,String> Map = new TreeMap<String,String>();
        ArrayList<String> acroymn = new ArrayList<String>();
        String group;
        String people;
        while((group = pacsFile.readLine()) != null)
        {
            acroymn.add(group);
        }
        Collections.sort(acroymn);
        pacsFile.close();
        while((membersFile.ready()))
        {
            ArrayList<String> members = new ArrayList<String>();
            people = membersFile.readLine();
            String [] peoples = people.split(" ");
            members.add(peoples[0]);
            for (int i = 1; i< peoples.length; i++)
            {

                Map.put(peoples[i],peoples[0]);
            }

        }
        membersFile.close();

        for(String acro: acroymn)
        {
            String name = "";
            for(String mem: Map.keySet())
            {
                for(String S: Map.get())
                {
                    if(acro.equals(S))
                    {
                        name = name+ " " + mem;
                    }
                }
            }
            System.out.println(acro + " " + name);      


        }


} // END MAIN

} // CLASS  

2 个答案:

答案 0 :(得分:0)

由于几个原因,有一个变量名称,例如&#34; Map&#34;但除此之外,你粘贴的代码叫做#34; Map.get()&#34;在哪里&#34;地图&#34;是对TreeMap实例的引用。 TreeMap中没有get()方法,它不接受任何参数,所以我不希望上面的代码甚至编译。

答案 1 :(得分:0)

代码很麻烦,很难说出你想要完成的任务。是不是这样(它甚至不会编译)......

for(String S: Map.get(mem))
{
    if(acro.equals(S))
    {
        name = name+ " " + mem;
    }
}

你在找这样的东西吗?...

String s = Map.get(mem);
if(acro.equals(s))
{
    name = name+ " " + mem;
}