java中的数组(前两个值为字符串,最后一个为int)

时间:2014-09-16 07:29:51

标签: java

我想在java中实现以下数组。

$values = array();

$values[]['monthName'] = 'April'
$values[]['Year'] = '2014'
$values[]['value'] = 4658;

4 个答案:

答案 0 :(得分:1)

您可以将数组类型设为通用类似Object[],也可以将其设置为String []数组,稍后使用int i = Integer.parseInt(array[2]);解析整数

答案 1 :(得分:1)

尝试使用interface Map<K, V>

Map<String, String> values = new HashMap<>();
values.put("monthName", "April");
values.put("Year", "2014");
values.put("value", "4658");

或创建实体类:

Map<Integer, Entity> values = new HashMap<>();
values.put(0, new Entity("April", "2014", 4658));

// $entry = $values[0]
Entity entity = values.get(0);

// foreach ($values as $key => $value) {  }
for (Map.Entry<Integer, Entity> entry : values.entrySet()) {  }

public class Entity {
    private String monthName;
    private String year;
    private int value;

    // ... constructor, getters and setters
}

答案 2 :(得分:0)

为什么不使用Map来达到效果?

Map<String, String> values = new HashMap<String, String>();
values.put("monthName", "April");
...

希望这可以帮到你。

答案 3 :(得分:0)

您可以在获取对象和转换时使用对象数组并小心。 以下是例如:

Object date[] = {"April","2014",12};

        for (int i=0; i<date.length;i++) {
            switch (i) {
            case 0:
                System.out.println((String)date[i]);
                break;
            case 1:
                System.out.println((String)date[i]);
                break;
            case 2:
                System.out.println((Integer)date[i]);
                break;
            default:
                break;
            }
        }