查找宠物猫信息问题
来源: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回答
上面那个if语句外面应该还有个循环,这个是进行查询的比较标准的方法。
循环遍历集合,然后判断集合中的nage和"花花6"是否相等,如果相等就将布尔值设置为true,然后跳出循环,此处一旦找到了,后续就不用再查找了,所以就用break语句跳出循环。布尔值定义的时候默认是fasle,所以如果没有找到,布尔值就还是之前的false
注意这里的查找,是认为集合中只有唯一值的情况。
在循环外,如果找到了,就打印输出找到了,否则提示没找到。
祝学习愉快!
相似问题