用至少不同的三种方法移除数组int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1}; 中1这个元素,返回一个新的数组 (不带有1)。 即新数组为int[] arr2 = {2, 3, 4, 5, 9, 4, 12, 67};
时间: 2023-09-03 07:24:50 浏览: 88
### 回答1:
1. 使用Java 8的Stream API:
```
int[] arr2 = Arrays.stream(arr)
.filter(i -> i != 1)
.toArray();
```
2. 使用循环和条件语句:
```
List<Integer> list = new ArrayList<>();
for (int i : arr) {
if (i != 1) {
list.add(i);
}
}
int[] arr2 = list.stream().mapToInt(i -> i).toArray();
```
3. 使用Java 9的List.copyOf()方法:
```
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
list.removeIf(i -> i == 1);
int[] arr2 = list.stream().mapToInt(i -> i).toArray();
```
### 回答2:
一种方法是使用循环遍历原数组,将不等于1的元素放入新数组中。代码如下:
```java
int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1};
int count = 0; // 计算新数组的长度
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 1) {
count++;
}
}
int[] arr2 = new int[count]; // 创建长度为count的新数组
int index = 0; // 新数组的索引
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 1) {
arr2[index] = arr[i];
index++;
}
}
```
另一种方法是使用ArrayList来移除元素,然后将ArrayList转换为数组。代码如下:
```java
int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1};
ArrayList<Integer> list = new ArrayList<>();
for (int num : arr) {
list.add(num);
}
list.removeIf(num -> num == 1); // 移除等于1的元素
int[] arr2 = new int[list.size()]; // 创建长度为list.size()的新数组
for (int i = 0; i < list.size(); i++) {
arr2[i] = list.get(i);
}
```
还一种方法是使用Java 8的Stream API来过滤掉等于1的元素,然后将流转换为数组。代码如下:
```java
int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1};
int[] arr2 = Arrays.stream(arr)
.filter(num -> num != 1) // 过滤掉等于1的元素
.toArray();
```
### 回答3:
方法一:使用循环遍历,将不为1的元素添加到新的数组中。
```java
int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1};
int[] arr2 = new int[arr.length]; // 创建新的数组
int index = 0; // 新数组的索引
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 1) {
arr2[index] = arr[i]; // 将不为1的元素添加到新的数组中
index++;
}
}
```
方法二:使用Java 8中的Stream流和filter方法来过滤掉值为1的元素。
```java
int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1};
int[] arr2 = Arrays.stream(arr) // 将数组转换成流
.filter(num -> num != 1) // 过滤掉值为1的元素
.toArray(); // 转换为新的数组
```
方法三:使用ArrayList来存储不为1的元素,然后再转换为数组。
```java
int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1};
ArrayList<Integer> list = new ArrayList<>();
for (int num : arr) {
if (num != 1) {
list.add(num); // 将不为1的元素添加到ArrayList中
}
}
int[] arr2 = new int[list.size()]; // 创建新的数组
for (int i = 0; i < list.size(); i++) {
arr2[i] = list.get(i); // 将ArrayList中的元素转换为数组
}
```
以上三种方法都可以实现从数组中移除元素1并返回新的数组arr2。