查找宠物猫信息问题

来源:3-10 查找宠物猫信息

jarive

2017-12-23 22:07:47

package com.zyd.test.set.catdemo;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
* Created by jingming on 2017/12/23.
*/
public class CatTest {
   public static void main(String[] args) {
       Cat huahua = new Cat("花花", 12, "英国短毛猫");
       Cat fanfan = new Cat("凡凡", 2, "中华田园猫");
       Set set = new HashSet();
       set.add(huahua);
       set.add(fanfan);

       Iterator it = set.iterator();
       System.out.println("宠物猫信息为:");
       //显示宠物猫信息
       while (it.hasNext()) {
           System.out.println(it.next());
       }

       System.out.println("============================");
       //添加重复复数据
       Cat huahua1 = new Cat("花花", 12, "英国短毛猫");
       set.add(huahua1);
       it = set.iterator();
       //显示宠物猫信息
       System.out.println("添加重复信息时,宠物信息为:");
       while (it.hasNext()) {
           System.out.println(it.next());
       }

       System.out.println("============================");
       Cat huahua2 = new Cat("花花二代", 2, "英国短毛猫");
       set.add(huahua2);

       System.out.println("添加花花二代之后的信息为:");
       it = set.iterator();
       while (it.hasNext()) {
           System.out.println(it.next());
       }

       /**
        * 查询宠物猫信息
        */
       //1.通过对象查找
       System.out.println("============================");
       System.out.println("通过对象查找宠物猫信息:");
       if (set.contains(huahua)) {
           System.out.println("花花找到了!");
           System.out.println("花花的信息为:" + huahua);
       }

       System.out.println("============================");

       //2.通过名称查找
       boolean flag = false;
       it = set.iterator();
       Cat c = null;
       while (it.hasNext()) {
           c =(Cat) it.next();
           if (c.getName().equals("花花6")) {
               flag = true;
               break;
           }
       }
       if (flag) {
           System.out.println("花花");
           System.out.println(c);
       } else {
           System.out.println("花花没找到!");
       }


   }
}

以下代码不是太理解,求赐教:
if (c.getName().equals("花花6")) {
               flag = true;
               break;
           }
       }
       if (flag) {
           System.out.println("花花");
           System.out.println(c);
       } else {
           System.out.println("花花没找到!");
       }


写回答

1回答

好帮手慕珊

2017-12-24

上面那个if语句外面应该还有个循环,这个是进行查询的比较标准的方法。

循环遍历集合,然后判断集合中的nage和"花花6"是否相等,如果相等就将布尔值设置为true,然后跳出循环,此处一旦找到了,后续就不用再查找了,所以就用break语句跳出循环。布尔值定义的时候默认是fasle,所以如果没有找到,布尔值就还是之前的false

注意这里的查找,是认为集合中只有唯一值的情况。

在循环外,如果找到了,就打印输出找到了,否则提示没找到。

祝学习愉快!

0
harive
h 非常感谢!
h017-12-24
共1条回复

0 学习 · 14452 问题

查看课程