public class Chen { /** * @param args */ public static void main(String[] args) { int[] array={1,2,3,4,5};//定义一个整型数组array包含5个数字 List<String> printList = new ArrayList<String>();//?? Chen Chen=new Chen();//使用静态方法,需要new一次 Chen.pailie(array, printList);//调用pailie方法, } private void pailie(int[] array, List<String> printList){ for(int i=0; i<array.length; i++){//遍历数组 printList.add(""+array[i]);//貌似是把遍历的东西放到printlist里面 if(array.length>1){ this.pailie(remove(array, i), printList);//跳到remove执行符合arrar.length>1的,这里应该是丢掉不要的部分 }else{ printArray(printList);//跳到PrintArray执行 } printList.remove(printList.size()-1);//这句不懂 } //在这里写排列的代码,“删除数组中指定位置的数字”,和“打印一个现有的list中所有的数字到控制台”在下面已经写好了。 //给他们两个加上详细的注释。 } private int[] remove(int[] array, int index){ int[] output= new int[array.length-1];//溢出的?? int j=0;// for(int i=0; i<array.length; i++){//遍历 if(i!=index && j<output.length){//越界和溢出 output[j++]=array[i];//把吐出来的东西丢给array[i] } } return output;//返回值 } private void printArray(List<String> printList){ for(String a : printList){//foreach语句,遍历 System.out.print(a);//打印 } System.out.print("/n");//换行 } }