需求如下:
1.键盘录入10个整数存入数组中
2.定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧
3.定义一个方法打印原数组和处理后的数组
4.定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数
import java.util.Arrays;
import java.util.Scanner;
public class Test06 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//键盘录入10个数字,存入数组
int[] arr = new int[10];
System.out.println("请输入10个整数,给数组赋值:");
for (int i = 0; i < arr.length; i++) {
arr[i] = in.nextInt();
}
//调用三个方法,将数组传入!!
doArr(arr);
printArr(arr);
getNum(arr);
}
//定义奇数放左侧,偶数放右侧的方法...
public static void doArr(int[] arr) {
//定义一个索引
int index = 0;
int[] newArr = new int[arr.length];
//遍历数组
for (int start = 0, end = arr.length - 1; start <= end; ) {
if (arr[index] % 2 == 0) {
newArr[end] = arr[index];
end--;
} else if (arr[index] % 2 == 1) {
newArr[start] = arr[index];
start++;
}
index++;
}
System.out.println(Arrays.toString(newArr));
}
//定义打印原数组和处理后数组的方法...
public static void printArr(int[] arr) {
System.out.println("--------------方法2--------------");
System.out.print("打印原数组:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println();//换个行
System.out.print("打印处理后的数组:");
//调用方法1
doArr(arr);
System.out.println();
}
//定义一个方法3的辅助方法...
//这个方法的功能是:传入一个数字,判断这个数字在数组中出现几次
public static int getCount(int[] arr, int num) {
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
count++;
}
}
return count;
}
//定义传入一个int类型数组,输出这个数组中只出现一次的数字及个数
public static void getNum(int[] arr) {
System.out.println("--------------方法3--------------");
int a = 0;
for (int i = 0; i < arr.length; i++) {
//调用那个辅助方法...
int count = getCount(arr, arr[i]);
//判断出现几次
if (count == 1) {
System.out.print(arr[i] + "\t");
a++;
}
}
if (a == 0) {
System.out.println("没有只出现过一次的数字!!");
}
System.out.println();//换个行
System.out.println("个数为:" + a + "个");
}
}
运行截图如下: