JAVA 如何将数组sum中same数组所有的数据删除
时间: 2023-06-12 14:05:27 浏览: 45
假设sum和same数组的类型均为int类型,可以使用以下代码实现:
```
int[] sum = {1, 2, 3, 4, 5};
int[] same = {2, 4};
List<Integer> list = new ArrayList<>();
for (int i : sum) {
list.add(i);
}
for (int i : same) {
list.removeAll(Collections.singleton(i));
}
sum = list.stream().mapToInt(Integer::intValue).toArray();
```
首先将sum数组转换为ArrayList,然后循环遍历same数组,使用ArrayList的removeAll方法删除所有与same数组中元素相同的元素,最后将ArrayList转换为int数组即可。
相关问题
JAVA 如何将sum数组中包含same数组的数据删除
可以使用Java中的ArrayList和for循环来实现。具体步骤如下:
1. 将sum数组和same数组转换为ArrayList。
```java
ArrayList<Integer> sumList = new ArrayList<>(Arrays.asList(sum));
ArrayList<Integer> sameList = new ArrayList<>(Arrays.asList(same));
```
2. 使用for循环遍历sameList,将其在sumList中的所有元素删除。
```java
for (int i = 0; i < sameList.size(); i++) {
int num = sameList.get(i);
while (sumList.contains(num)) {
sumList.remove(Integer.valueOf(num));
}
}
```
3. 将sumList转换回数组返回。
```java
int[] result = sumList.stream().mapToInt(Integer::intValue).toArray();
return result;
```
完整代码如下:
```java
public static int[] deleteSame(int[] sum, int[] same) {
ArrayList<Integer> sumList = new ArrayList<>(Arrays.asList(sum));
ArrayList<Integer> sameList = new ArrayList<>(Arrays.asList(same));
for (int i = 0; i < sameList.size(); i++) {
int num = sameList.get(i);
while (sumList.contains(num)) {
sumList.remove(Integer.valueOf(num));
}
}
int[] result = sumList.stream().mapToInt(Integer::intValue).toArray();
return result;
}
```
JAVA 如何用for循环将sum数组中包含same数组的数据删除
可以使用嵌套的for循环来实现这个功能。具体步骤如下:
1. 遍历sum数组,对于每个元素,再次遍历same数组。
2. 如果sum数组中当前元素等于same数组中的某个元素,则从sum数组中删除该元素。
3. 删除元素后,需要将sum数组的长度减1,并且将当前遍历的下标i回退1,以便下一次遍历不会漏掉一个元素。
4. 遍历完same数组后,如果sum数组中当前元素已被删除,则跳过当前元素,继续遍历下一个元素。
示例代码如下:
```
int[] sum = {1, 2, 3, 4, 5};
int[] same = {2, 4};
for (int i = 0; i < sum.length; i++) {
for (int j = 0; j < same.length; j++) {
if (sum[i] == same[j]) {
for (int k = i; k < sum.length - 1; k++) {
sum[k] = sum[k + 1];
}
sum = Arrays.copyOf(sum, sum.length - 1);
i--;
break;
}
}
}
```
这段代码可以将sum数组中包含在same数组中的元素删除,最终结果为{1, 3, 5}。