从对象向量中获取整数
Get int from Vector of Objects
我使用一种方法从数据库中获取数据并将其存储在向量中。该方法将始终 return 一个 Vector of Objects,其中 Object 数据类型可以是 Date、Double 或 String。就我而言,我知道我得到的是 Double,但我想将其转换为 int。有没有比以下更简单的方法:
System.out.println((int)Double.parseDouble(vector1.get(1).toString()));
我试过的其他无效的方法:
System.out.println((Integer)vector1.get(1)); // java.lang.ClassCastException: java.lang.Double incompatible with java.lang.Integer
System.out.println((int)vector1.get(1));
提前感谢任何建设性的回应
您可以使用 intValue() 获取 int 值。
Double b = new Double((double)vector1.get(1));
int value = b.intValue();
您可以使用Math.round(double) 来获取整型值。作为
双 d = Double.parseDouble(vector1.get(1));
int v = (int) Math.round(d);
按照这个answer,我们可以将代码改造成
Double d = vector1.get(1);
Integer i = d.intValue();
我在这里假设,如果你有一些数组,也许你想将那里的所有数据从 Double
转换为 Integer
vector1.stream().mapToInt(n -> n.intValue()).mapToObj(Integer::new).collect(Collectors.toList());
或
vector1.stream().mapToInt(Double::intValue).mapToObj(Integer::new).collect(Collectors.toList());
我使用一种方法从数据库中获取数据并将其存储在向量中。该方法将始终 return 一个 Vector of Objects,其中 Object 数据类型可以是 Date、Double 或 String。就我而言,我知道我得到的是 Double,但我想将其转换为 int。有没有比以下更简单的方法:
System.out.println((int)Double.parseDouble(vector1.get(1).toString()));
我试过的其他无效的方法:
System.out.println((Integer)vector1.get(1)); // java.lang.ClassCastException: java.lang.Double incompatible with java.lang.Integer
System.out.println((int)vector1.get(1));
提前感谢任何建设性的回应
您可以使用 intValue() 获取 int 值。
Double b = new Double((double)vector1.get(1));
int value = b.intValue();
您可以使用Math.round(double) 来获取整型值。作为
双 d = Double.parseDouble(vector1.get(1));
int v = (int) Math.round(d);
按照这个answer,我们可以将代码改造成
Double d = vector1.get(1);
Integer i = d.intValue();
我在这里假设,如果你有一些数组,也许你想将那里的所有数据从 Double
转换为 Integer
vector1.stream().mapToInt(n -> n.intValue()).mapToObj(Integer::new).collect(Collectors.toList());
或
vector1.stream().mapToInt(Double::intValue).mapToObj(Integer::new).collect(Collectors.toList());