墨色风雨
在任何 Java 版本中,您都可以这样做:Double[] orange = {11.7, 0.9, 0.1, 4.0, 89.0, 1.0, 0.0, 1.0, 2.0, 0.1, 4.0, 5.0, 47.0};Double[] broccoli = {7.2, 2.4, 0.4, 31.0,108.0, 7.0,176.0,30.0, 45.0, 23.0, 4.0, 3.0, 11.0};String[] keys = {"orange", "broccoli"};Double[][] values = {orange , broccoli };Map<String, Double[]> map = new HashMap<>();for (int i = 0; i < keys.length; i++) map.put(keys[i], values[i]);在 Java 9+ 中,如果你有 10 个或更少的映射条目,你可以像这样简化它:Double[] orange = {11.7, 0.9, 0.1, 4.0, 89.0, 1.0, 0.0, 1.0, 2.0, 0.1, 4.0, 5.0, 47.0};Double[] broccoli = {7.2, 2.4, 0.4, 31.0,108.0, 7.0,176.0,30.0, 45.0, 23.0, 4.0, 3.0, 11.0};Map<String, Double[]> map = Map.of( "orange" , orange, "broccoli", broccoli );如果你不需要Double[]被命名,你可以内联它们:Map<String, Double[]> map = Map.of( "orange", new Double[] {11.7, 0.9, 0.1, 4.0, 89.0, 1.0, 0.0, 1.0, 2.0, 0.1, 4.0, 5.0, 47.0}, "broccoli", new Double[] {7.2, 2.4, 0.4, 31.0,108.0, 7.0,176.0,30.0, 45.0, 23.0, 4.0, 3.0, 11.0} );
侃侃尔雅
您可以创建包含name和(列表)的类nutrients:import java.util.*;public class Main { public static void main(String[] args) { Fruit orange = new Fruit( "orange", new Double[]{0.9, 0.1, 4.0, 89.0, 1.0, 0.0, 1.0, 2.0, 0.1, 4.0, 5.0, 47.0} ); Fruit broccoli = new Fruit( "broccoli", new Double[]{7.2, 2.4, 0.4, 31.0, 108.0, 7.0, 176.0, 30.0, 45.0, 23.0, 4.0, 3.0, 11.0} ); List<Fruit> fruitList = new ArrayList<>(Arrays.asList(orange, broccoli)); Map<String, Double[]> map = new HashMap<>(); for (Fruit fruit : fruitList) { map.put(fruit.getName(), fruit.getNutrients()); } }}class Fruit { private String name; private Double[] nutrients; Fruit(String name, Double[] nutrients) { this.name = name; this.nutrients = nutrients; } public String getName() { return name; } public Double[] getNutrients() { return nutrients; }}