Java 无法创建地图的地图
我试图用java创建映射,以便通过读取unix命令行输出来显示所有pri状态 这是我的密码Java 无法创建地图的地图,java,Java,我试图用java创建映射,以便通过读取unix命令行输出来显示所有pri状态 这是我的密码 import java.io.*; import java.util.StringTokenizer; import java.util.HashMap; import java.util.Map; import java.util.Iterator; import java.util.HashMap; import java.util.Hashtable; import java.util.*; pub
import java.io.*;
import java.util.StringTokenizer;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.*;
public class HelloWorld {
public static void main(String args[]) {
String s = null;
try {
Process p1 = Runtime.getRuntime().exec( new String[] {"asterisk", "-rx", "pri show spans"});
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p1.getInputStream()));
Map mainpri = new HashMap();
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p1.getErrorStream()));
int count = 1;
while ((s = stdInput.readLine()) != null) {
if(count > 2)
{
//Map pristatus = new HashMap();
Hashtable<Integer, String> sourceone = new Hashtable<Integer,String>();
HashMap<Integer, String> pristatus = new HashMap(sourceone);
System.out.println(s);
StringTokenizer st = new StringTokenizer(s);
int nextcount = 1;
while (st.hasMoreTokens()) {
if(nextcount == 1){
pristatus.put(1, st.nextToken());
}
else if(nextcount == 2){
pristatus.put(2, st.nextToken());
}
else if(nextcount == 3){
pristatus.put(3, st.nextToken());
}
else if(nextcount == 4){
pristatus.put(4, st.nextToken());
}
else{
pristatus.put(5, st.nextToken());
}
nextcount ++ ;
}
mainpri.put(1,pristatus);
System.out.println(mainpri);
}
count ++;
}
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
System.exit(0);
}
catch (IOException e) {
System.out.println("exception happened - here's what I know: ");
e.printStackTrace();
System.exit(-1);
}
}
}
但我想把这个放进去
{1={1=PRI, 2=span, 3=1/0:, 4=Up,, 5=Active},
{2={1=PRI, 2=span, 3=2/0:, 4=In, 5=Active},
{3={1=PRI, 2=span, 3=3/0:, 4=In, 5=Active},
{4={1=PRI, 2=span, 3=4/0:, 4=In, 5=Active}}
我是python出身的java开发人员,所以我无法理解我读到的关于Hastable的内容,但这不起作用
请帮我找出我可能做错了什么。您应该更改此行:
mainpri.put(1,pristatus);
致:
当您想更改映射键时。尝试使用Collections.addAll方法初始化de map时您已经将mainpri的键硬编码为1,应该使用“count”变量而不是“1”
正如正确指出的,问题在这一行-: mainpri.put(1,棱柱体)强> 您总是将值与键1相对, 将其替换为-:
主普里.普特(伯爵,普里斯塔特斯) 您需要将map key值从1更改为count value mainpri.put(1,pristatus) 到
mainpri.put(count,pristatus)如果我正确读取了两个输出块,您的问题只是缺少一个逗号?另外,当旧的Hashtable.no}也丢失时,使用HashMap
mainpri.put(1,pristatus);
mainpri.put(count, pristatus);
mainpri.put(1,pristatus);