मैं map
ऐसी प्रविष्टियाँ बनाना चाहता हूँ जिनमें प्रविष्टियाँ शामिल हों(int, Point2D)
मैं जावा में यह कैसे कर सकता हूं?
मैंने निम्नलिखित असफलता की कोशिश की।
HashMap hm = new HashMap();
hm.put(1, new Point2D.Double(50, 50));
मैं map
ऐसी प्रविष्टियाँ बनाना चाहता हूँ जिनमें प्रविष्टियाँ शामिल हों(int, Point2D)
मैं जावा में यह कैसे कर सकता हूं?
मैंने निम्नलिखित असफलता की कोशिश की।
HashMap hm = new HashMap();
hm.put(1, new Point2D.Double(50, 50));
जवाबों:
आरंभीकरण के साथ-साथ मानचित्र बनाने का एक बेहतर तरीका है:
Map<String, String> rightHereMap = new HashMap<String, String>()
{
{
put("key1", "value1");
put("key2", "value2");
}
};
अधिक विकल्पों के लिए यहां एक नज़र डालें मैं स्थैतिक मानचित्र को कैसे आरंभ कर सकता हूं?
जावा ९
public static void main(String[] args) {
Map<Integer,String> map = Map.ofEntries(entry(1,"A"), entry(2,"B"), entry(3,"C"));
}
Map<Integer, Point2D> hm = new HashMap<Integer, Point2D>();
Point2D.Double
एक Point2D
= \ के रूप में नहीं दिखता है
Map<int, Point2D> hm = new HashMap<int, Point2D>()
, मुझे यह त्रुटि मिलती है: टोकन "int" पर सिंटैक्स त्रुटि, इस टोकन के बाद आयाम की उम्मीद है।
मैं जावा 9 के लिए इस तरह की मैप आबादी का उपयोग करता हूं। मेरी ईमानदार राय में, यह दृष्टिकोण कोड को अधिक पठनीयता प्रदान करता है।
public static void main(String[] args) {
Map<Integer, Point2D.Double> map = Map.of(
1, new Point2D.Double(1, 1),
2, new Point2D.Double(2, 2),
3, new Point2D.Double(3, 3),
4, new Point2D.Double(4, 4));
map.entrySet().forEach(System.out::println);
}
नए जावा संस्करणों ( यानी, जावा 9 और आगे) के साथ आप उपयोग कर सकते हैं:
Map.of(1, new Point2D.Double(50, 50), 2, new Point2D.Double(100, 50), ...)
सामान्य रूप से:
Map.of(Key1, Value1, Key2, Value2, KeyN, ValueN)
हालाँकि यह ध्यान में रखें कि Map.of
केवल अधिकांश 10
प्रविष्टियों के लिए काम करता है , यदि आपके पास उन प्रविष्टियों से अधिक है 10
जिनका आप उपयोग कर सकते हैं:
Map.ofEntries(entry(1, new Point2D.Double(50, 50)), entry(2, new Point2D.Double(100, 50)), ...);
import java.util.Map; import java.util.HashMap;
याimport java.util.*;