2014-12-08 4 views
5

पर जोड़ी (int, double) जोड़ी नहीं जोड़ सकता है, मैं अभी जावा प्रोजेक्ट पर काम कर रहा हूं, और मेरे पास एक क्लास है जिसे मैंने डिस्ट्यूक्यूयू कहा है। यह के हस्ताक्षर सेहैश मैप <इंटीजर, डबल>

public class DistanceQueue<Integer> extends PriorityQueue<Integer> 

दिया जाता है इस वर्ग में, वहाँ एक विधि

public boolean add(int v) 

जो एक HashMap बुलाया दूरी में है कि करने के लिए कुंजी-मान पेयर (V, Double.MAX_VALUE) कहते है कक्षा DistanceQueue। हालांकि, ऐड (पूर्णांक v), जब मैं टाइप

distances.put(v, Double.MAX_VALUE); 

मैं निम्नलिखित त्रुटि मिलती है के अंदर:

DistanceQueue.java:98: error: no suitable method found for put(int,double) 
      distances.put(v, Double.MAX_VALUE); 
        ^
    method HashMap.put(Integer,Double) is not applicable 
     (actual argument int cannot be converted to Integer by method invocation conversion) 
    where Integer is a type-variable: 
    Integer extends Object declared in class ShortestPaths.DistanceQueue 
1 error 

क्या किसी को पता है कि क्यों मैं इस त्रुटि मिल रहा है? मैंने सोचा कि जावा स्वचालित रूप से आपके लिए int और Integer के बीच परिवर्तित हो गया है। क्या कोई आसान तरीका है कि मैं इसे ठीक कर सकता हूं?

धन्यवाद!

+0

'distances' क्या है? –

+0

दूरी एक हैश मैप है। यह हैश मैप <इंटीजर, डबल> दूरी = नया हैश मैप <इंटीजर, डबल>() – Ryan

+0

मैंने निश्चित रूप से पहले इस प्रश्न के डुप्लिकेट को देखा है लेकिन वे खोजना वाकई मुश्किल हैं क्योंकि उनके पास यादृच्छिक समस्या विवरण हैं जो वास्तविक समस्या का संकेत नहीं देते हैं। – 5gon12eder

उत्तर

19

आप Integer का उपयोग एक प्रकार पैरामीटर के नाम के रूप में कर रहे हैं, जो java.lang.Integer छुपाता है।

public class DistanceQueue<Integer> extends PriorityQueue<Integer> 
          ^^^^^^^ 

आप शायद सिर्फ प्रकार पैरामीटर छोड़ देना चाहिए:

public class DistanceQueue extends PriorityQueue<Integer> 
+0

तो मैं अपना दृष्टिकोण कैसे बदलूं ताकि मैं हैश मैप में सम्मिलित कर सकूं? – Ryan

+2

'पब्लिक क्लास दूरीक्यूयू प्राथमिकता Queue ' –

संबंधित मुद्दे