不要用数组循环判断等于的方式,来判断一个对象是否在一个集合内

 

事例:

   /**

     * 判断是否在黑名单里面
     * @param name 需要判断的名字
     * @return true:在黑名单
     */
    private boolean inBlackName(String name) {
        String[] blackName = {
            "black name 1","黑名单2","no name","kaokao",
        };


        for(int i = 0; i < blackName.length ; i++) {
            if (blackName[i].equals(name)) {
                return true;
            }
        }
        
        return false;

    }


其实呢,应该把黑名单记录在一个集合里面,判断集合是否包含需要判断的名字即可。


   private static final Set blackNames = new HashSet();
    static {
        blackNames.add("black name 1");
        blackNames.add("黑名单2");
        blackNames.add("no name");
        blackNames.add("kaokao");
    }
    

    /**
     * 判断是否在黑名单里面
     * @param name 需要判断的名字
     * @return true:在黑名单
     */
   
private boolean inBlackName(String name) {
        return blackNames.contains(name);
    }

    使用Set,是因为黑名单不需要有顺序记录,这样会更节省存储空间。

Set去判断是否存在,会比循环判断更快捷方便。

当然,代码更好的修改,是把黑名单放在配置文件里,在系统启动的时候调入内存。这个就不多说了。

文章最主要的目的,是告诉新手们,不要用数组循环判断等于的方式,来判断一个对象是否在一个集合内


### 回答1: 迭代是指对数据集合中的每个元素进行遍历和处理的过程。在编程中,迭代通常通过循环来实现。而迭代器是一种用于迭代的对象,它可以访问数据集合中的元素,并且提供了一些操作方法,如获取下一个元素、判断是否还有下一个元素等。 在C#中,foreach循环使用的就是迭代器来实现对集合的遍历。它会自动获取集合中的迭代器并使用它来访问集合中的元素,因此我们可以通过foreach循环来遍历数组集合或者列表等数据结构。 ### 回答2: 迭代是指通过逐个访问集合的每个元素来遍历数据结构的过程。在编程中,迭代通常用于循环访问数组集合或列表中的元素。可以将迭代看作是一种遍历集合中每个元素的方式。 迭代器是一种用于对集合进行迭代的对象或接口。通过使用迭代器,可以轻松地从集合中获取下一个元素,并遍历所有元素。迭代器提供了一种通用的方法来访问集合中的元素,而不需要关心底层数据结构的实现方式。 在循环语句中,使用迭代器可以遍历数组集合或列表的每个元素,而不需要显式地控制索引或指针。foreach循环是一种语法糖,它简化了迭代集合的操作。通过foreach循环,只需指定要迭代的集合,然后在循环体内使用迭代变量,即可逐个访问集合中的元素。 所以,虽然迭代和迭代器有着紧密的联系,但它们并不完全等同。迭代是一种过程或行为,而迭代器是为了实现迭代而提供的工具或接口。 ### 回答3: 迭代是指在某个集合或者数据结构中逐一访问所有的元素的过程。在编程中,使用迭代器(Iterator)是实现迭代的常见方法之一,但不是唯一方法。 迭代器是一种特殊的对象,它提供了一种顺序访问集合中各个元素的接口。通过调用迭代器的方法,我们可以依次获取集合中的每个元素,并进行相应的处理。迭代器的优点是可以隐藏集合内部的实现细节,只暴露必要的操作接口,提供了更加灵活和高效的遍历方式。 在很多编程语言中,包括Java、Python、C#等,我们可以使用foreach循环来简化迭代过程。foreach循环会自动获取集合的迭代器,并使用迭代器逐一访问集合的元素,无需我们手动操作迭代器和计数器。这种语法糖的使用使得编写迭代代码更加简洁、易读,并且避免了一些可能的错误。 总结来说,迭代是指逐一访问集合或数据结构中的元素的过程,而迭代器是一种具体的实现方式,通过迭代器我们可以轻松地进行迭代操作。而foreach循环是编程语言提供的一种简化迭代操作的语法糖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值