leetcode第一题java代码报错。求原因?

package com.hust.ali.test;
import java.util.*;

/**

  • 给定一个整数数组,发现两个数字,使得它们添加到一个特定的目标数。
  • 函数twoSum应返回两个数字,使得它们加起来的目标,其中索引1必须小于索引2的所有。
  • @author Cat
    *
    /
    public class TwoNumSum {
    /
    *

    • @param args
      */
      public static void main(String[] args) {
      int[] num = {0,4,3,0,6,9};
      TwoNumSum ts = new TwoNumSum();
      int[] result = ts.twoSum (num, 7);
      System.out.println(result[0]+" " + result[1]);
      }
      public int[] twoSum (int[] numbers,int target){
      IdentityHashMap hashNum = new IdentityHashMap();
      Integer[] temp = new Integer[numbers.length];

      for(int i=0;i temp[i] = new Integer(numbers[i]);
      hashNum.put(temp[i] , i);
      }
      Arrays.sort(numbers);
      Arrays.sort(temp);
      int i = 0 , j = numbers.length - 1;
      int[] result = new int[2];
      while( i if( numbers[i] + numbers[j] == target ){
      result[0] = hashNum.get(temp[i])+1;
      result[1] = hashNum.get(temp[j])+1;
      break;
      }else if (numbers[i] + numbers[j] > target ){
      j--;
      }else if(i < numbers.length-1){
      i++;
      }
      }
      Arrays.sort(result);
      return result;
      }
      }

import java.util.*;

/**

  • 给定一个整数数组,发现两个数字,使得它们添加到一个特定的目标数。 函数twoSum应返回两个数字,使得它们加起来的目标,其中索引1必须小于索引2的所有。
  • @author Cat
    /
    public class TwoNumSum {
    /

    • @param args */ public static void main(String[] args) { int[] num = { 0, 4, 3, 0, 6, 9 }; TwoNumSum ts = new TwoNumSum(); int[] result = ts.twoSum(num, 7); System.out.println(result[0] + " " + result[1]); }

    public int[] twoSum(int[] numbers, int target) {
    IdentityHashMap hashNum = new IdentityHashMap();
    Integer[] temp = new Integer[numbers.length];
    for (int i = 0; i < temp.length; i++) {
    temp[i] = new Integer(numbers[i]);
    hashNum.put(temp[i], i);
    }
    Arrays.sort(numbers);
    Arrays.sort(temp);
    int i = 0, j = numbers.length - 1;
    int[] result = new int[2];
    while (i != numbers.length) {
    if (numbers[i] + numbers[j] == target) {

            result[0] = (Integer) hashNum.get(temp[i]) + 1;
            result[1] = (Integer) hashNum.get(temp[j]) + 1;
            break;
        }
    
        else if (numbers[i] + numbers[j] > target) {
            j--;
        } else if (i < numbers.length - 1) {
            i++;
        }
    }
    Arrays.sort(result);
    return result;
    

    }
    }

这是我写的Java代码,可以参考下
``
public class Solution {

public int[] twoSum(int[] nums, int target) {
    int[] result = new int[2];
    HashMap<Integer, Integer> t = new HashMap<Integer, Integer>();
    for (int i = 0; i < nums.length; i++) {
        t.put(nums[i], i);
    }
    for (int i = 0; i < nums.length; i++) {
        int tmp = target - nums[i];
        Integer index2 = t.get(tmp);
        if (index2 != null) {
            result[0]=i+1;
            result[1]=index2+1;
            if (result[0] < result[1]) {
                break;
            }
        }
    }
    return result;
}

}
``