任意输入8个元素组成一堆数组,并从小到大排序!在输入第9个数之后,插入该一维数组并不影响从小到大的顺序。
首先数组的话是固定长度的,如果要动态复制也比较费劲,推荐使用list实现,然后调用ArrayList的toArray方法将list转成数组
public class test {
public static void main(String[] args) {
haha();
}
public static void haha (){
Scanner scanner0 = new Scanner(System.in);
List<Integer> list = new ArrayList<>();
System.out.println("请输入集合所需元素!");
while (true) {
Integer haha = scanner0.nextInt();
list.add(haha);
if (list.size() == 8) {
break;
}
}
System.out.println("正在排序中,排序后结果如下:");
String sort = sort(list);
System.out.println("排序结果:" + sort);
Scanner scanner1 = new Scanner(System.in);
System.out.println("添加最后一个元素!");
Integer hehe = scanner1.nextInt();
list.add(hehe);
System.out.println("正在排序中,排序后结果如下:");
String sort0 = sort(list);
System.out.println("最后的排序结果:" + sort0);
}
public static String sort (List<Integer> list) {
Integer[] arr = new Integer[list.size()];
list.toArray(arr);
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
arr[j] ^= arr[j + 1];
arr[j + 1] ^= arr[j];
arr[j] ^= arr[j + 1];
}
}
}
return Arrays.toString(arr);
}
}
以上基本实现,后续需求自己琢磨着加吧