用Java1.键盘录入10个整数存入数组中 2.定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧 3.定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数。
时间: 2024-02-11 12:06:06 浏览: 77
好的,让我来解答你的问题。
1. 用Java键盘录入10个整数存入数组中
可以使用Scanner类来实现键盘输入,代码如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
System.out.print("请输入第" + (i+1) + "个整数:");
arr[i] = scanner.nextInt();
}
System.out.println("输入的数组为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
```
2. 定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧
可以使用双指针法,在遍历数组时,用一个指针指向数组的头部,另一个指针指向数组的尾部,依次判断每个数的奇偶性,如果是奇数就将其放在左侧,如果是偶数就将其放在右侧。
代码如下:
```java
public static void oddEvenSort(int[] arr) {
int left = 0, right = arr.length - 1;
while (left < right) {
while (left < right && arr[left] % 2 == 1) {
left++;
}
while (left < right && arr[right] % 2 == 0) {
right--;
}
if (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
}
System.out.println("奇偶排序后的数组为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
```
3. 定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数。
可以使用HashMap来统计每个数字出现的次数,然后再遍历一次数组,输出只出现一次的数字及个数。
代码如下:
```java
import java.util.HashMap;
public static void findSingleNum(int[] arr) {
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
if (map.containsKey(arr[i])) {
int count = map.get(arr[i]);
map.put(arr[i], count + 1);
} else {
map.put(arr[i], 1);
}
}
int singleCount = 0;
System.out.print("数组中只出现一次的数字有:");
for (Integer key : map.keySet()) {
if (map.get(key) == 1) {
singleCount++;
System.out.print(key + " ");
}
}
System.out.println("共" + singleCount + "个");
}
```
完整代码如下:
```java
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
System.out.print("请输入第" + (i+1) + "个整数:");
arr[i] = scanner.nextInt();
}
System.out.println("输入的数组为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
oddEvenSort(arr);
findSingleNum(arr);
}
public static void oddEvenSort(int[] arr) {
int left = 0, right = arr.length - 1;
while (left < right) {
while (left < right && arr[left] % 2 == 1) {
left++;
}
while (left < right && arr[right] % 2 == 0) {
right--;
}
if (left < right) {
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
}
}
System.out.println("奇偶排序后的数组为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public static void findSingleNum(int[] arr) {
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
if (map.containsKey(arr[i])) {
int count = map.get(arr[i]);
map.put(arr[i], count + 1);
} else {
map.put(arr[i], 1);
}
}
int singleCount = 0;
System.out.print("数组中只出现一次的数字有:");
for (Integer key : map.keySet()) {
if (map.get(key) == 1) {
singleCount++;
System.out.print(key + " ");
}
}
System.out.println("共" + singleCount + "个");
}
}
```
希望我的回答能够帮助到你。
阅读全文