gpt4 book ai didi

Java - 数组 - 流程控制、循环和分支

转载 作者:行者123 更新时间:2023-12-01 08:00:17 25 4
gpt4 key购买 nike

在下面的代码中,您需要获取一组负面文章和一组正面文章。如何获得不为零的数组。

package niz;

import java.util.HashSet;

public class Niz {

public static void main(String[] args)
{
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};

int array1[] = new int[array.length];
int array2[] = new int[array.length];

for (int i = 0; i < array.length; i++)
if (array[i] < 0)
array1[i] = array[i];
else
if (array[i] > 0)
array2[i] = array[i];

HashSet<Integer> notDupes = new HashSet<>();
HashSet<Integer> duplicates = new HashSet<>();
for (int i = 0; i < array.length; i++)
{
if (!notDupes.contains(array[i]))
{
notDupes.add(array[i]);
continue;
}
duplicates.add(array[i]);
}

System.out.println("negative members of the array: " + java.util.Arrays.toString(array1));
System.out.println("positive members of the array : " + java.util.Arrays.toString(array2));
System.out.println("number of duplicates : " + duplicates.size());

}
}

以下是输出:

run:
negative members of the array: [0, 0, -22, 0, 0, 0, -4, -55, 0, 0, 0, -999, -87]
positive members of the array : [12, 23, 0, 0, 43, 545, 0, 0, 43, 12, 0, 0, 0]
number of duplicates : 3
BUILD SUCCESSFUL (total time: 1 second)

最佳答案

初始化整数数组时,数组中的默认元素为零。因此,填充这些数组后,其中仍然有零个元素,对应于未填充的数字。要解决此问题,您可以使用 List 来代替,而不必初始化为固定大小。如果您仍然希望末尾有数组,可以将 List 转换为数组。

List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new ArrayList<Integer>();
for (int i = 0; i < array.length; i++)
if (array[i] < 0)
list1.add(array[i]);
else if (array[i] > 0)
list2.add(array[i]);

Integer array1[] = list1.toArray(new Integer[list1.size()]);
Integer array2[] = list2.toArray(new Integer[list2.size()]);

顺便说一句,使用调试器检测这一点根本不需要太多时间。

关于Java - 数组 - 流程控制、循环和分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25871228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com