gpt4 book ai didi

java - 如何将嵌套 HashMap 键(字符串)转换为 double

转载 作者:行者123 更新时间:2023-12-02 05:44:47 25 4
gpt4 key购买 nike

我有一个嵌套的 HashMap ,但我不知道如何将键转换为 double 。我必须转换它们,因为稍后我必须做一些计算。无论如何,有没有办法转换它们。我这样做的原因是因为我想将三个元素映射在一起:半径、θ 和振幅。当我从特定格式的图像中读取它们时,我想将其保存在 HashMap 中(我发现最方便,因为它映射了元素)。所以我尝试了列表和数组列表,但无法让它保存三个元素,所以我使用了嵌套 HashMap 。

这是我的代码:

    // create a Map()
original = new LinkedHashMap<List<RadTheta>,String>();
List<RadTheta> list = new ArrayList<RadTheta>();
// create a Map()

for(int i =0; i< 256;i++){
for(int y=0; y< 256; y++){

//reading in the values.
String x = image.getLocationAsString(i, y);
String n = image.getValueAsString(i, y);

//Parsing them into "key" and "value".
String delim = ", value=";
String [] tokens = n.split(delim);
double num = Double.parseDouble(tokens[1]);
String stringNum = String.valueOf(num);
//System.out.println(num);

String [] t = x.split("r=");
String[] b = t[1].split(" mm/c");
//System.out.print("Meet b: "+b[0]);
double radius = Double.parseDouble(b[0]);
String stringRad = String.valueOf(radius);
//System.out.print("The radius: "+radius);

String [] split = x.split("theta= ");
String [] split2 = split[1].split(Character.toString(IJ.degreeSymbol));
double theta = Double.parseDouble(split2[0]);
//System.out.println(" theta: "+theta);
String stringTheta = String.valueOf(theta);

RadTheta rad = new RadTheta(radius, theta);
list.add(rad);
original.put(list, stringNum);

//System.out.println(stringRad+" theta= "+stringTheta+" value= "+stringNum);



}
}

这里我通过 HashMap 进行迭代,我想将键(半径,theta)值转换为 double 值,因为然后我对它们进行了一些计算。有什么办法可以转换吗?

  public void outputData(PrintWriter write){
write.println("Radius" +" Theta "+" Amplitude");
saveData();
Iterator iter = original.entrySet().iterator();

while(iter.hasNext()){
Map.Entry pairs = (Map.Entry)iter.next();

//This is the problem-------------------------------
double currKey = Double.parseDouble(pairs.getKey());
double currValue = Double.parseDouble((String) pairs.getValue());
write.println(currKey +" "+currValue);

System.out.println(pairs.getKey() + " = "+ pairs.getValue());
}
}

最佳答案

您应该创建一个包含 3 个 double 的类并使用该类的列表:

class Value {
double theta;
double radius;
double amp;
}

List<Value> values = new ArrayList();

// fill list with values
for (Value val: values) {
System.out.println("Theta="+val.theta+", Radius="+val.radius+", Amp="+val.amp);
}

关于java - 如何将嵌套 HashMap 键(字符串)转换为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24193507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com