gpt4 book ai didi

Java - 列出 int 数组中重复值的索引

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:57:04 25 4
gpt4 key购买 nike

我必须找到并列出数组中所有重复的索引值。

例子:int[] array = { 0, 7, 9, 1, 5, 8, 7, 4, 7, 3};

7 位于索引 1、6 和 8 的三个不同位置。我将如何修改现有代码以使 outputResults.setText() 显示重复值的位置?如果有帮助,outputResults.setText() 就是 JTextField。

String tmp1 = getNumbers.getText();
try {
int search = Integer.parseInt(tmp1);
for (p = 0; p < array.length; p++) {
if(array[p]==search) {
b = true;
index = p;
}
}
if(b==true)
outputResults.setText(search + " was in the following fields of the array " + index);
else
throw new NumberNotFoundException("Your number was not found.");


} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(getContentPane(), "You can only search for integers.");

} catch (NumberNotFoundException ex) {
JOptionPane.showMessageDialog(getContentPane(), ex.getMessage());
}

在当前状态下,它只会列出最后一次找到重复数字的时间,根据我的示例,它是索引 8。数组中的数字列表是由用户输入的,我不允许对这些值进行排序。我最初的猜测是创建一个嵌套循环,每当它找到一个重复的数字时,将 p(它正在搜索的当前索引)添加到一个新数组中。然后我会在 outputResults.setText() 中列出完整数组,但在我尝试时它给出了几个警告和错误。

如果需要,可以在这里找到完整的代码:http://pastebin.com/R7rfWAv0是的,整个程序一团糟,但它完成了工作,我对此非常头疼。另请注意,在完整程序中,教授要求我们在检测到重复值作为额外学分时抛出异常。我做到了,但我把它注释掉以完成原来的作业,所以请忽略它。

最佳答案

我认为你应该使用List来记录索引

List<Integer> indexs =new ArrayList<Integer>();
for (p = 0; p < array.length; p++) {
if(array[p]==search) {
indexs.add(p);
}
}
if(p.length()>0){
//print the result
}

关于Java - 列出 int 数组中重复值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087861/

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