在Java中,如何将for循环输出转换为单独的数组?

在Java中,如何将for循环输出转换为单独的数组?,java,arrays,for-loop,arraylist,hashmap,Java,Arrays,For Loop,Arraylist,Hashmap,我需要将下面的代码输出到单独的数组中,以便使用另一个计算。在本例中,输出为 z count is= 1 y count is= 3 x count is= 2.

我需要将下面的代码输出到单独的数组中,以便使用另一个计算。在本例中,输出为

z count is= 1                                                                                
y count is= 3                                                                                      
x count is= 2.   
我需要取1,3,2来分开数组。我怎么做?我是Java新手

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class ForArrays {
    public static void main(String[] args) {

        ArrayList<String> name = new ArrayList<String>();
        HashMap<String, Integer> termFreqMap = new HashMap<String, Integer>();
        ArrayList<String> words = new ArrayList<String>();
        HashMap<String, Integer> wordFreqMap = new HashMap<String, Integer>();

        name.add("x");
        name.add("y x");
        name.add("y z y");

        // count words
        for (int j = 0; j < name.size(); j++) {
            String tempname = name.get(j);
            String[] result = tempname.split(" ");
            for (String s : result) {
                Integer twf = wordFreqMap.get(s);
                if (twf == null)
                    wordFreqMap.put(s, new Integer(1));
                else {
                    wordFreqMap.put(s, new Integer(++twf));
                }
            }
        }

        for (Map.Entry<String, Integer> entry : wordFreqMap.entrySet()) {
            String tempWord = entry.getKey();
            Integer wf = entry.getValue();
            System.out.println(tempWord + " " + "count is= " + wf);
        }
    }
}
import java.util.ArrayList;
导入java.util.HashMap;
导入java.util.Map;
公开课{
公共静态void main(字符串[]args){
ArrayList name=新的ArrayList();
HashMap termFreqMap=新HashMap();
ArrayList words=新的ArrayList();
HashMap wordFreqMap=新HashMap();
名称。添加(“x”);
名称。添加(“y x”);
名称。添加(“y z y”);
//数词
对于(int j=0;j
使用Hashmap的大小创建一个int数组,以便Hashmap大小和数组大小相似。迭代Hashmap时,将结果保存在数组中。
这里的问题是hashmap没有插入顺序,因此数组将不处于插入顺序。因此,您可能不知道什么键的计数。为此,您可以创建一个键数组,并将键也放在那里,以实现键数组和countarray的一对一映射

    int countArray[]  = new int[wordFreqMap.size()];
    int i=0;
    for (Map.Entry<String, Integer> entry : wordFreqMap.entrySet()) {
        String tempWord = entry.getKey();
        Integer wf = entry.getValue();
        System.out.println(tempWord + " " + "count is= " + wf);
        countArray[i++] = wf;

    }
int countArray[]=新的int[wordFreqMap.size()];
int i=0;
对于(Map.Entry:wordFreqMap.entrySet()){
字符串tempWord=entry.getKey();
整数wf=entry.getValue();
System.out.println(tempWord++”计数为=“+wf”);
countArray[i++]=wf;
}

使用Hashmap的大小创建一个int数组,以便Hashmap大小和数组大小相似。迭代Hashmap时,将结果保存在数组中。
这里的问题是hashmap没有插入顺序,因此数组将不处于插入顺序。因此,您可能不知道什么键的计数。为此,您可以创建一个键数组,并将键也放在那里,以实现键数组和countarray的一对一映射

    int countArray[]  = new int[wordFreqMap.size()];
    int i=0;
    for (Map.Entry<String, Integer> entry : wordFreqMap.entrySet()) {
        String tempWord = entry.getKey();
        Integer wf = entry.getValue();
        System.out.println(tempWord + " " + "count is= " + wf);
        countArray[i++] = wf;

    }
int countArray[]=新的int[wordFreqMap.size()];
int i=0;
对于(Map.Entry:wordFreqMap.entrySet()){
字符串tempWord=entry.getKey();
整数wf=entry.getValue();
System.out.println(tempWord++”计数为=“+wf”);
countArray[i++]=wf;
}

我尝试使用System.out.println(“数组输出”+countArray[I])获取打印输出;但是它给出了一个错误“java.lang.ArrayIndexOutOfBoundsException:3”;非常感谢您的支持。您应该访问小于大小的数组,如果大小为3,则最多访问2。如果需要将输出作为System.out.println(countArray[I]);以便进一步计算。我怎么能接受呢?因为它给出了“线程中的异常”main“java.lang.ArrayIndexOutOfBoundsException:3”错误?(我是java新手)for(I=0;我尝试使用System.out.println(“数组输出”+countArray[I])获取打印输出,但它给出了一个错误“java.lang.ArrayIndexOutOfBoundsException:3”。它与System.out.println(Arrays.toString(countArray))一起工作;非常感谢您的支持。您应该访问小于大小的数组,如果大小为3,则最多访问2。如果我需要将输出作为System.out.println(countArray[I]),以进行进一步计算。我如何获取它?因为它给出了“线程中的异常”main“java.lang.ArrayIndexOutOfBoundsException:3”错误(我是java新手)(I=0;I