根据自己理解(一个不算太菜的菜鸟)for循环 与iterator 最大区别 for循环在数据处理不如iterator迭代来的好(仅自我了解,大神可吐槽。。)在遍历数据是如果添加 或删除某条数据 for循环三个方法体去完成 遍历,获取,操作for循环在遍历时对数据进行remove/add 就会报错。iterator while循环 条件x.hasNext() 遍历x.next() 操作 输出。 instanceof判断两者是否是继承关系,忘记了怎样重写Object的equal方法 为什么要重写如下
Person p1 = new Person(
1,"张三丰",66,"男");
Person p2 = new Person( 1,"张三丰",66,"男");
System.out.println(p1 == p2 ); //false
//equals Object中的equals方法是==的实现.
System.out.println( p1.equals(p2));// false
Person p2 = new Person( 1,"张三丰",66,"男");
System.out.println(p1 == p2 ); //false
//equals Object中的equals方法是==的实现.
System.out.println( p1.equals(p2));// false
class Person extends Object{
private int id ;
private String name ;
public Person(int id ,String name ){
this.id = id ;
this.name = name ;
}
private int id ;
private String name ;
public Person(int id ,String name ){
this.id = id ;
this.name = name ;
}
重写
public Boolean equals(Object obj){
//判断 obj是否为空
if(obj==null){
return false; }
//判断obj是否为当前对象
if(obj==this){return true}
if(obj instanceof Person){return this.id == other.id &&this.name.equals(other.name) }
return false ; }
map集合迭代
迭代key Set<Integer> skey = map.keySet();
Iterator<Integer> ikey = skey.iterator();
while(ikey.hasNext()){
Integer key = ikey.next();
String val = map.get(key);
System.out.println(key+"-"+val);}
迭代key-value
Set<Entry<Integer, String>> k_v = map.entrySet();
Iterator<Entry<Integer, String>> itkv = k_v.iterator();
while(itkv.hasNext()){
Entry<Integer,String> en = itkv.next();
Integer key = en.getKey();
String value = en.getValue();
System.out.println(key+"-"+value);}