我想从数组中获取一个数字,而不必做很多 if 语句。
double[] PVC_A1_Cu = new double[]{14.5d, 19.5d, 26.0d, 34.0d, 46.0d, 61.0d, 80.0d, 99.0d, 119.0d, 151.0d, 182.0d, 210.0d, 240.0d, 273.0d, 321.0d, 367.0d};
double[] PVC_A2_Cu = new double[]{14.0d, 18.5d, 25.0d, 32.0d, 43.0d, 57.0d, 75.0d, 92.0d, 110.0d, 139.0d, 167.0d, 192.0d, 219.0d, 148.0d, 291.0d, 334.0d};
double[] PVC_B1_Cu = new double[]{17.5d, 24.0d, 32.0d, 41.0d, 57.0d, 76.0d, 101.0d, 125.0d, 151.0d, 192.0d, 232.0d, 269.0d, 300.0d, 341.0d, 400.0d, 458.0d};
double[] PVC_B2_Cu = new double[]{16.5d, 23.0d, 30.0d, 38.0d, 52.0d, 69.0d, 90.0d, 111.0d, 133.0d, 168.0d, 201.0d, 232.0d, 258.0d, 294.0d, 344.0d, 394.0d};
String Kappe = SpinLederKapp.getSelectedItem().toString(); // This would return "PVC"
String LederMat = SpinLederMat.getSelectedItem().toString(); // This would return "A1"
String InsMet = SpinInsMet.getSelectedItem().toString(); //This would return "Cu"
Integer Tverrsnitt = SpinTverrsnitt.getSelectedItemPosition(); //This would return in this case "2"
String Codetest = Kappe + "_" + InsMet + "_"+LederMat; //this would put it together like "PVC_A1_Cu"
Double Test3 = Codetest[Tverrsnitt]; //And here is were my knowledge ends...
//This does not work ^
//What i want it to do:
Double Test1 = PVC_A1_Cu[2];
将数组放在 a 中Map
(可能一次,然后将其保留在类级别):
Map<String, double[]> map = new HashMap<>();
map.put("PVC_A1_Cu", new double[]{14.5d, 19.5d, 26.0d, 34.0d, 46.0d, 61.0d, 80.0d, 99.0d, 119.0d, 151.0d, 182.0d, 210.0d, 240.0d, 273.0d, 321.0d, 367.0d});
map.put("PVC_A2_Cu", new double[]{14.0d, 18.5d, 25.0d, 32.0d, 43.0d, 57.0d, 75.0d, 92.0d, 110.0d, 139.0d, 167.0d, 192.0d, 219.0d, 148.0d, 291.0d, 334.0d});
map.put("PVC_B1_Cu", new double[]{17.5d, 24.0d, 32.0d, 41.0d, 57.0d, 76.0d, 101.0d, 125.0d, 151.0d, 192.0d, 232.0d, 269.0d, 300.0d, 341.0d, 400.0d, 458.0d});
map.put("PVC_B2_Cu", new double[]{16.5d, 23.0d, 30.0d, 38.0d, 52.0d, 69.0d, 90.0d, 111.0d, 133.0d, 168.0d, 201.0d, 232.0d, 258.0d, 294.0d, 344.0d, 394.0d});
然后将它与您的Codetest
字符串一起使用:
double Test3 = map.get(Codetest)[Tverrsnitt];
请注意,我 ued double
, not Double
,因为数组是原始双精度数,而不是Double
实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句