java 寻找两个有序数组的中位数

java 寻找两个有序数组的中位数

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;


public class MedianSortedArrays
{
    public static double findMedianSortedArrays(int[] nums1, int[] nums2)
    {
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < nums1.length; i++)
        {
            list.add(nums1[i]);
        }
        for (int i = 0; i < nums2.length; i++)
        {
            list.add(nums2[i]);
        }
        
        Collections.sort(list, new Comparator<Integer>()
        {
            @Override
            public int compare(Integer o1, Integer o2)
            {
                // 返回值为int类型,大于0表示正序,小于0表示逆序
                return o2 - o1;
            }
        });

        Object[] arr = list.toArray();
        if (arr.length % 2 == 0)
        {
            return (Double.valueOf(String.valueOf(arr[arr.length / 2])) + Double
                    .valueOf(String.valueOf(arr[arr.length / 2 - 1]))) / 2.0;
        } else
        {
            return Double.valueOf(String.valueOf(arr[arr.length / 2]));
        }

    }
    
    
    public static void main(String[] args)
    {
        int[] nums1 = {1, 1};
        int[] nums2 = {1,2};
        /*int[] nums1 = {1, 3};
        int[] nums2 = {2,4};*/
        System.out.println(findMedianSortedArrays(nums1, nums2));
    }
}