Java集合框架部分体系结构(补充)
Map类接口:
Map集合的特点:
1、Map集合是一个双列集合,包含key和value两个值。
2、在Map集合中,key和value的数据类型可以相同,也可以不同。
3、在Map集合中,key是不可重复的,value是可重复的。
4、在Map集合中,键与值一一对应(即key和value一一对应)。
Map的常用方法:
Map的增删改查:
增:put();
删:remove();
改:put();
查:get();
public class TestMap {
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("CN", "中华人民共和国");
map.put("UK", "大不列颠联合王国");
map.put("US", "美利坚合众国");//增
System.out.println(map.get("CN"));//查
map.remove("US");
System.out.println(map.get("US"));
map.remove("CN", "ABC");//删
System.out.println(map.get("CN"));
map.containsKey("key");
map.containsValue("key");
map.put("CN", "中国");//改
System.out.println(map.get("CN"));
map.replace("CN", "中华人民共和国");
Map的三种遍历方式:
//遍历的方式
Set entry = map.entrySet();
for (Object o : entry) {
System.out.println(o);
}
//遍历key的方式
Set keys = map.keySet();
Iterator itr=keys.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
//遍历value的方式
Collection values = map.values();
for (Object value : values) {
System.out.println(value);
}
泛型
定义:将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性
练习:根据学员英文名找到学员对象
需求:
学员应聘至外企工作,每个学员都会有一个英文名称,对应该学员对象。请实现通过英文名称,获得该学员对象的详细信息,学员属性包括姓名以及性别,通过泛型解决该问题。
public class Student {
private String name;
private String sex;
public Student() {
}
public Student(String name, String sex) {
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
public class Test {
public static void main(String[] args) {
HashMap<String,Student> map=new HashMap();
Student stu=new Student("李翔","男");
map.put("Jack",stu);
Scanner sc=new Scanner(System.in);
System.out.println("请输入英文名:");
String name=sc.next();
Student student=map.get(name);
System.out.println(name+"是学员"+stu.getName()+",性别是:"+stu.getSex());
}
}
Collections的用法
Collections类定义了一系列用于操作集合的静态方法
Collection框架图:
Collections和Collection的区别:
Collections和Collection不同,前者是集合的操作类,后者是集合接口
Collections提供的常用静态方法:
sort():排序
binarySearch():查找
max()\min():查找最大\最小值
public class TestCollection {
public static void main(String[] args) {
List list=new ArrayList();
list.add("abc");
list.add(123);
list.add("hello");
list.add(3.1415926);
Collections.sort(list, new Comparator<Object>() {
@Override
public int compare(Object o1, Object o2) {
return -1;
}
});
System.out.println(list);
Collections排序
1、Collections类可以对集合进行排序、查找和替换操作
2、实现一个类的对象之间比较大小,该类要实现Comparable接口,即使用重写compareTo()方法