[英]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.