【发布时间】:2019-11-26 07:08:15
【问题描述】:
假设我有一个场景,当它满足条件时,需要完成某些很棒的任务。
public class Check101 {
public static boolean validColor(String color) {
return color.equals("RED")
|| color.equals("BLUE")
|| color.equals("GREEN");
}
public static List<String> validColorList= new ArrayList<String>(Arrays.asList("RED","GREEN","BLUE"));
public static void main(String[] args) {
String color = "RED";
if (validColor(color)) {
//do awesome work
}
if(validColorList.contains(color)){
//do awesome work
}
}
}
现在看起来还不错,因为它只有原色, 如果有效颜色增加到(i)100 和(ii)1600 万颜色会怎样。 那么哪个是最好的方法呢? 请注意,我受限于不使用 Set/HashMap 或 O(1) 可搜索容器,并且只被要求回答这个奇怪的场景。
【问题讨论】:
-
不使用Set的原因是什么?
-
我奇怪的导师问了我这个问题,他允许我的唯一其他方法是枚举而不是列表。
-
这两种方法都不适用于 1600 万色。
-
我同意 1600 万色的观点,但第一点呢?
标签: java arrays arraylist enums time-complexity