103 votes

Créer une carte en Java

Je voudrais créer un map qui contient des entrées constituées de (int, Point2D)

Comment puis-je faire cela en Java ?

J'ai essayé ce qui suit, sans succès.

HashMap hm = new HashMap();

hm.put(1, new Point2D.Double(50, 50));

143voto

hd1 Points 11522
Map <Integer, Point2D.Double> hm = new HashMap<Integer, Point2D>();
hm.put(1, new Point2D.Double(50, 50));

26voto

Durgpal Singh Points 81

Java 9

public static void main(String[] args) {
    Map<Integer,String> map = Map.ofEntries(entry(1,"A"), entry(2,"B"), entry(3,"C"));
}

25voto

webdizz Points 490

Il existe même une meilleure façon de créer une Map en même temps que l'initialisation :

Map<String, String> rightHereMap = new HashMap<String, String>()
{
    {
        put("key1", "value1");
        put("key2", "value2");
    }
};

Pour plus d'options, voir ici Comment initialiser une Map statique ?

12voto

dreamcrash Points 8227

Avec les nouvelles versions de Java ( c'est-à-dire, Java 9 et versions ultérieures), vous pouvez utiliser :

Map.of(1, new Point2D.Double(50, 50), 2, new Point2D.Double(100, 50), ...)

de manière générique :

Map.of(Key1, Value1, Key2, Value2, KeyN, ValueN)

Gardez cependant à l'esprit que Map.of ne fonctionne que pour au maximum 10 si vous avez plus de 10 entrées que vous pouvez utiliser :

Map.ofEntries(entry(1, new Point2D.Double(50, 50)), entry(2,  new Point2D.Double(100, 50)), ...);

10voto

Achrome Points 4585
Map<Integer, Point2D> hm = new HashMap<Integer, Point2D>();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X