在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