【发布时间】:2015-12-01 07:54:13
【问题描述】:
创建数组:
{int, String}, {String, String}, {int, long}, {String,boolean}, {String, double}, {int, class Car}, {String, class Car}
转换成HashMap、TreeMap、LinkedHashMap
这是汽车类:
public class Car implements Comparable{
int id;
String car_name;
String number;
public Car(int id, String car_name, String number) {
this.id = id;
this.car_name = car_name;
this.number = number;
}
@Override
public String toString() {
return "Car{" +
"id='" + id + '\'' +
", car_name='" + car_name + '\'' +
", number='" + number + '\'' +
'}';
}
}
有我的代码:
public class Main {
private static HashMap<Integer,String> toHM(Object[][] a){
HashMap<Integer,String> h = new HashMap<>();
for (Object[] o : a){
h.put((Integer) o[0], (String) o[1]);
}
return h;
}
private static HashMap<Integer,String> toLHM(Object[][] a){
HashMap<Integer,String> h = new LinkedHashMap<>();
for (Object[] o : a){
h.put((Integer) o[0], (String) o[1]);
}
return h;
}
private static TreeMap<Integer,String> toTM(Object[][] a){
TreeMap<Integer,String> h = new TreeMap<>();
for (Object[] o : a){
h.put((Integer) o[0], (String) o[1]);
}
return h;
}
public static void main(String[] args) {
Object[][] a = new Object[2][2];
a[0][0] = 1;
a[0][1] = "test";
a[1][0] = 2;
a[1][1] = "other test";
HashMap<Integer,String> aHM = toHM(a);
HashMap<Integer,String> aLHH = toLHM(a);
TreeMap<Integer,String> aTM = toTM(a);
}
}
这是正确的代码吗?可能,最好在该代码中使用泛型? 我知道如何解决这个问题吗?
【问题讨论】:
-
您不能只将对象转换为字符串或整数。而是覆盖您的方法以采用不同的数组或在其中包含一个 instanceof if 语句。
标签: java arrays object converter typeconverter