奉天承运,博主诏曰:
Map接口
代码演示
import java.util.*;//导入util工具包
public class Demo1 {
public static void main(String[] args) {
HashMap map=new HashMap();//声明并分配空间
map.put("CN","中国");//以“键-值”对的方式进行存储 k,v
map.put("UK","英国");
map.put("US","美国");
map.put("RU","俄罗斯");
System.out.println(map);//打印
map.put("US","美利坚合众国");//键 相同的情况下覆盖前一个值
System.out.println(map);//打印查看覆盖效果
map.get("CN");//查找键为CN的值
System.out.println(map.get("CN"));//打印查看查找效果
map.remove("US");//删除键为US的键-值对
Set entrys = map.entrySet();//返回键-值对应的集合
for (Object entry : entrys) {//增强for遍历所有键-值对
System.out.println(entry);//打印所有键-值对
}
Set keys = map.keySet();//返回键的集合
for (Object key : keys) {//增强for遍历所有键
System.out.print(key);//打印所有键
System.out.println(map.get(key));//也可以附带查找打印键对应的值
}
Collection values = map.values();//返回值的集合
for (Object value : values) {//增强for遍历所有值
System.out.println(value);//打印所有值
}
map.size();//元素个数
System.out.println(map.size());//打印查看元素个数
System.out.println(map.containsKey("CN"));//查看是否包含键CN的键-值对
System.out.println(map.containsValue("美国"));//查看是否包含值"美国"的键-值对
map.clear();//清空集合
System.out.println(map.isEmpty());//判断集合是否为空
}
}
代码每一次实现效果如下
泛型
代码演示
新建一个Stu类存储学员信息
public class Stu {//学生类存储学生基本信息
public String name;//学员基本信息变量
public String gender;
public Stu(String name, String gender) {//构造器
this.name = name;
this.gender = gender;
}
@Override
public String toString() {//重写toString方法方便输出
return "Stu{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
'}';
}
}
新建一个Company类
import java.util.*;
public class Company {
public static void main(String[] args) {
HashMap<String,Stu> map=new HashMap<String,Stu>();//对应键-值类型分别为String和Stu类,注意:基本数据类型不能作为泛型
map.put("Jack",new Stu("李明","男"));
map.put("Rose",new Stu("小红","女"));
map.put("Amy",new Stu("小兰","女"));
Set<String> keys = map.keySet();
for (String key : keys) {
System.out.print(key);
System.out.println(map.get(key));
}
}
}
运行效果如下
Collections算法类
代码演示
重写刚才的Stu类,在其中添加学号信息
public class Stu {//学生类存储学生基本信息
public int num;
public String name;//学员基本信息变量
public String gender;
public Stu(int num,String name, String gender) {//构造器
this.num=num;
this.name = name;
this.gender = gender;
}
@Override
public String toString() {
return "Stu{" +
"num=" + num +
", name='" + name + '\'' +
", gender='" + gender + '\'' +
'}';
}
}
新建一个TestCollections类
import java.util.*;
public class TestCollections {
public static void main(String[] args) {
ArrayList<Stu> list=new ArrayList<>();
list.add(new Stu(15,"张三","男"));
list.add(new Stu(1,"丽丽","女"));
list.add(new Stu(24,"陈欧","男"));
list.add(new Stu(18,"佩佩","女"));
list.add(new Stu(3,"小黑","男"));
System.out.println(list);
Collections.sort(list, new Comparator<Stu>() {//泛型改为Stu类
@Override
public int compare(Stu o1, Stu o2) {
return o1.num-o2.num;//根据每一组信息的num排序,如果要降序就使用o2.num-o1.num
}
});
System.out.println(list);
}
}
运行结果如下
钦此。