gpt4 book ai didi

java - Java 中 n 大小的数组

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

这是我在采访中被问到的:

To print duplicate values from an array.

我将所有重复值存储在数组 b 中。最后将它们存储在哈希集中并打印哈希集。我将它们存储在哈希集中的唯一原因是因为我只想要重复项中的唯一值。就像如果我的数组中有 {1,2,2,1} 那么它应该只打印 {1,2}。

下面的程序工作正常,但我已经为数组 b 分配了固定大小(下面程序中的大小 = 100),并且我希望在运行时应使用找到的重复项数来更新其值。例如:如果我的数组 a 和 b 中有 10 个重复值,则 b 应该变为 10。

在发布这个问题之前我检查了很多,我也认为这可以用 ArrayList 来完成,但我不知道如何为数组 b 编写。

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

public class duplicate_values_hash {

public static void main(String aa[])
{
Integer a[] = {1, 2, 3, 1, 2, 4, 5, 1, 3, 8, 10, 11, 90, 8,12, 5, 4, 5, 8};
Arrays.sort(a);

Integer b[] = new Integer[100]; // How to update on runtime

int len,i,j = 0;
len = a.length;

for(i = 1; i < len; i++)
{
if(a[i-1] == a[i])
{
j = j + 1;
b[j] = a[i];
}
}

List<Integer> list = Arrays.asList(b);
HashSet hs = new HashSet();
hs.addAll(list);
System.out.println(hs);

}
}

最佳答案

数组a大小动态分配:

public static void main(String aa[]) {
Integer a[] = {
1, 2, 3, 1, 2, 4, 5, 1, 3, 8, 10, 11, 90, 8, 12, 5, 4, 5, 8
};
Arrays.sort(a);

Integer b[] = new Integer[a.length]; // How to update on runtime

int len, i, j = 0;
len = a.length;

for (i = 1; i < len; i++) {
if (a[i - 1] == a[i]) {
b[j++] = a[i];
}
}

List<Integer> list = new ArrayList<Integer>(Arrays.asList(b));
list.removeAll(Collections.singleton(null));
HashSet hs = new HashSet();
hs.addAll(list);
System.out.println(hs);

}

关于java - Java 中 n 大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30836232/

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