gpt4 book ai didi

java - 尝试在 Java 的 ArrayList 实现中查找唯一元素。 getUnique 方法

转载 作者:行者123 更新时间:2023-12-01 08:54:50 26 4
gpt4 key购买 nike

public class MyArrayList<T> implements MyList<T>{
int num; //number of things in the list
T[] vals; //to store the contents

@SuppressWarnings("unchecked")
public MyArrayList() {
num = 0;
vals = (T[]) new Object[3];
}

public T getUnique(){
T distinct = null;
int count = 0;
for (int i=0; i<vals.length; i++){
distinct = vals[i];
for (int j = 0; j<vals.length; j++){
if (vals[j] == vals[i]){
count++;
}
if (count == 1){
return distinct;
}
}
}
if (distinct == null){
throw new IllegalArgumentException();
}
return distinct;
}

我正在尝试研究一种获取唯一方法。 getUnique 方法不带任何参数,并返回列表中仅出现一次的第一个值。 (例如,调用列表 [1,2,3,1,2,4] 上的方法将返回 3,因为 1 和2 都出现多次。)如果列表为空或者其所有值出现多次,该方法将抛出 NoSuchElementException

最佳答案

我在您的代码中添加了一些 FIXME:

public T getUnique(){
T distinct = null;
int count = 0; // FIXME: move this initialization inside the i loop
for (int i=0; i<vals.length; i++){
distinct = vals[i];
for (int j = 0; j<vals.length; j++){
if (vals[j] == vals[i]){ // FIXME: use .equals() not ==
count++;
}
if (count == 1){ // FIXME: move this check outside the j loop
return distinct;
}
}
}
if (distinct == null){ //FIXME: no check needed, just throw it
throw new IllegalArgumentException();
}
return distinct; //FIXME: no valid return can reach this point
}

关于java - 尝试在 Java 的 ArrayList 实现中查找唯一元素。 getUnique 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42105822/

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