简体   繁体   English

MergeSort.java使用未经检查或不安全的操作

[英]MergeSort.java uses unchecked or unsafe operations

This is the Java implementation of merge sorting written by myself: 这是我自己编写的Java合并排序的实现:

import java.util.*;

public class MergeSort {

public static void main(ArrayList<Integer> L){
    ArrayList<Integer> inputArr= new ArrayList<Integer>();
    inputArr.add(43);
    inputArr.add(32);
    inputArr.add(4);
    inputArr.add(523);
    inputArr.add(67);
    inputArr.add(45);
    inputArr.add(66);
    MergeSort mms=new MergeSort();
    ArrayList<Integer> outputArr= new ArrayList<Integer>();
    outputArr=mms.sorting(inputArr);

    for (int i=0; i<outputArr.size(); i++){
        System.out.print(outputArr.get(i));
        System.out.print(" ");
    }

}

public  ArrayList<Integer> sorting(ArrayList<Integer> L){
    int NumEelement = L.size()/2 + L.size()%2;
    ArrayList<Integer> A = new ArrayList<Integer>();
    ArrayList<Integer> B = new ArrayList<Integer>();
    A = (ArrayList<Integer>) L.subList(0, NumEelement);
    B = (ArrayList<Integer>) L.subList(NumEelement+1, L.size()-1);
    sorting(A);
    sorting(B);
    ArrayList<Integer> result=merge(A,B);
    return result;
}
public ArrayList merge(List<Integer> A, List<Integer> B){
    int i=0;
    int j=0;

    ArrayList<Integer> newL = new ArrayList<Integer> ();

    for(int k=0;k<(A.size()+ B.size());k++){
        if (A.get(i)< B.get(j)){
            newL.set(k, A.get(i));
            i++;
        }else{
            newL.set(k, B.get(j));
            j++;
        }
    }
    return newL;
}
}

This code complies. 此代码符合。 However,there are two notes: 1. MergeSort.java uses unchecked or unsafe operations. 但是,有两个注意事项:1. MergeSort.java使用未经检查或不安全的操作。 2. Recompile with -Xlint:unchecked for details. 2.使用-Xlint:unchecked重新编译以获取详细信息。

Do your generic usage properly.. Change 正确使用常规用法。

public ArrayList merge(List<Integer> A, List<Integer> B){

into

public ArrayList<Integer> merge(List<Integer> A, List<Integer> B){

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM