public static void deleteHalf(File file) {
File[] files=file.listFiles();
ArrayList
for(int i=0;i<files.length;i++) { //将文件数组里每个文件的索引保存在列表中
a.add(i);
}
Collections.shuffle(a); //将列表内的元素顺序打乱
int[] b=new int[files.length/2]; //新建一个数组,该数组长度为文件数量的一半
for(int i=0;i<b.length;i++) {
for(int j=0;j<=i;j++) {
b[i]=a.get(j); //遍历a列表,将a列表中的元素添加进b数组中,但是b数组中元素的数量只有a列表的一半
}
}
for(int c:b) {
for(int i=0;i<files.length;i++) { //遍历b数组与文件数组,如果文件数组的索引与b数组中的元素相等时,删除文件数组中索引对应的文件
if(i==c) //因为b数组元素只有a列表元素的一半,同时a列表内保存的是文件数组的索引,也就是说b数组中保存了文件数组一半的索引,这些索引顺序是被打乱过的
files[i].delete(); //删除对应的文件
}
}
}
原文:https://www.cnblogs.com/rxz110010/p/15091958.html