Java基础知识总结:集合与泛型(下)

来源:互联网 发布:淘宝服装拍摄价格 编辑:程序博客网 时间:2024/06/11 02:27

散列集

一、Set接口

1.Set是一个无序且不能重复存储的集合

2.HashSetSet的重要实现类

二、与List差异

1.Set的遍历只能用foreach()和iterator(),没有get()方法和set()方法

2.Set中重复添加一个对象,只会保留一个

3.list中的contains()方法比较时会调用对象的equals()方法

4.set中的contains()方法会先调用对象的hashcode()方法,成立后再调用equals()方法比较


关于Map:

1.初始化变量

Map<String,Student>students= new HashMap<String,Student>()

//初始化key值为String,存放的数据类型为student的students集合

2.put()增加对象

Student newStu = newStudent(ID,name);

students.put(ID,newStudent);//以ID作为key值

3.查找对象

(1)Set<String>keySet = students.keySet();

for(StringstuId:keySet){

Student st=students.get(stuId);

}//先用keySet()获取所有的key,再遍历获取每一个对象

(2)Set<Entry<String,Student>>entrySet =students.entrySet();//由于每个键值对都以entry类型存放,yongentrySet()方法获取所有键值对

for(Entry<String,Student>entry:entrySet){//遍历获取键值对

entry.getKey();//获取key

entry.getValue();//获取value

}

4.删除

students.remove(ID);//根据key的值删除

5.修改

Student stu =students.get(ID);

Student newStudent=new Student(ID,newname);

students.put(ID,newStudent);

/*Map中没有直接修改的方法,所以采用先找出对象,然后不修改key值,只修改value的方法进行修改*/


****************************重写equals方法**********************************

/**

 *equals的缺省方法时判断的是两者所有属性完全相同

 *重写可以使判断更加准确

 */


0 0