Java 你认为写这个算法最干净的方法是什么?

Java 你认为写这个算法最干净的方法是什么?,java,algorithm,Java,Algorithm,我和我的朋友都必须解决同样的问题。我们后来讨论了我们的解决方案,但我们无法就谁的解决方案最好达成一致 public static boolean doesContain1 (List<Integer> list, Integer value){ for(int i = 0; i < list.size(); i++){ if(list.get(i).equals(value)){ return true;

我和我的朋友都必须解决同样的问题。我们后来讨论了我们的解决方案,但我们无法就谁的解决方案最好达成一致

 public static boolean doesContain1 (List<Integer> list, Integer value){
        for(int i = 0; i < list.size(); i++){
            if(list.get(i).equals(value)){
                return true;
            }
        } 
        return false;
 }

 public static boolean doesContain2 (List<Integer> list, Integer value){
        boolean result = false;
        for(int i = 0; i < list.size(); i++){
            if(list.get(i).equals(value)){
                result = true;
            }
        } 
        return result;
 }

public static boolean doesContain3 (List<Integer> list, Integer value){
        boolean result = false;
        for(int i = 0; i < list.size(); i++){
            if(list.get(i).equals(value)){
                result = true;
                break;
            }
        } 
        return result;
 }
public静态布尔doesContain1(列表,整数值){
对于(int i=0;i
第一个包含两个return语句,这是不鼓励的。 第二个循环遍历列表的其余部分,即使找到了匹配项,这也是浪费时间。 第三个包含break语句,这是不鼓励的


哪种解决方案性能最好?

列表
界面支持该方法。我想解决这个问题的最好办法是依靠Java的创建者如何实现它。
List
ArrayList
LinkedList
等)的不同实现实现方式略有不同,但它们或多或少都像
中的doesContain1
那样实现


不鼓励使用2个
return
语句。也不鼓励使用
break
语句。唯一令人沮丧的是中间的例子,因为它在发现结果后浪费计算资源。< /P> <代码>返回列表。包含(值)< /代码>?第一个选项是最好的,至少<代码>包含(…)method做一些等效的事情。list.contains(value)不会有什么问题,我简化了这些方法,这样每个人都可以一眼就能看到它们。问题的焦点是返回方法的数量、中断使用、性能问题。你的问题毫无意义,返回结果越快越好,不要为已经存在的东西创建方法:list.contains(value)性能可以用实际的方法来衡量。创建大型整数列表并将其传递给所有三个方法,并测量处理时间。