2016-09-25 100 views
0

我想檢查這個函數的結果。 但無法修復聲明錯誤!如何聲明hashmap?

import java.util.HashMap; 


    public class twosum { 
     public int[] twoSum(int[] nums, int target) { 
Map<Int, Int> map = new HashMap<>(); 

的java:泛型不支持在-source 1.3 的java:鑽石經營者未在-source 1.3

  for(int i=0;i<nums.length;i++){ 
       map.put(nums[i],i); 
      } 
      for(int i=0;i<nums.length;i++){ 
       int complement = target - nums[i]; 
       if(map.containsKey(complement) && map.get(complement) != i){ 
        return new int[] { i, map.get(complement)}; 
       } 
      } 
      throw new IllegalArgumentException("No two sum solution"); 
     } 
     public void main(String[] args){ 

      int nums[] = {1,2,3,4}; 
      System.out.println(twoSum(nums,5)); 

      for(int i=0;i<4;i++){ 
       System.out.println(i+"->"+"map="+map); 
      } 
     } 
    } 
+2

是否使用一個IDE?將項目Java級別設置爲1.8。 – Li357

+2

這看起來像您的IDE設置爲以Java 1.3模式構建。這是_very_老,你應該改變它,理想的是Java 8.您使用哪個IDE? –

回答

0

支持嘗試

Map<Integer, Integer> map = new HashMap<>(); 

Map<Integer, Integer> map = new HashMap<Integer, Integer>(); 
+3

這無助於修復所描述的*「java:generics不支持-source 1.3 java:d​​iamond運算符在-source 1.3中不受支持」的錯誤*。當然,一旦錯誤得到糾正,下一個錯誤將會被你所建議的內容所固定,但是你並沒有回答實際的*問題*。我不會投票,因爲你的答案*有點幫助,但它不是完全有用*,所以沒有投票權。 – Andreas