1、Map
常用方法
Map<K, V> 即 Map 中定义的 K 类型的 key 和 V 类型的 value 的映射关系的类。
方法 | 解释 |
---|---|
K.getKey() | 返回 entry 中的 key |
V.getValue() | 返回 entry 中的 value |
V.get(Object key) | 返回 key 对应的 value |
V. getOrDefault(Object key, V defaultValue) | 返回 key 对应的 value,key 不存在,返回默认值 |
V.put(K key, V value) | 设置 key 对应的 value |
V.remove(Object key) | 删除 key 对应的映射关系 |
boolean containsKey(Object key) | 判断是否包含 key |
boolean containsValue(Object value) | 判断是否包含 value |
一个 Map 只能维护一组映射关系,如果有多组映射,就需要多组 Map
2、Set
常用方法
Set< K > 即 Set中定义的 K 类型的 key 的类
方法 | 解释 |
---|---|
boolean add(E e) | 添加元素,但重复元素不会被添加成功 |
void clear() | 清空集合 |
boolean contains(Object o) | 判断 o 是否在集合中 |
Iterator < E> iterator() | 返回迭代器 |
boolean remove(Object o) | 删除集合中的 o |
Set 的 add 方法加入多个相同元素,在 Set 中只能保存一份,可以用来去重
3、代码示例
map 的示例代码
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
class Student {
public String name;
public int age;
public String grade;
public String school;
public Student(String name, int age, String grade, String school) {
this.name = name;
this.age = age;
this.grade = grade;
this.school = school;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", grade='" + grade + '\'' +
", school='" + school + '\'' +
'}';
}
}
public class TestMap {
public static void main(String[] args) {
Student s1 = new Student("初一", 18, "大一","清华");
Student s2 = new Student("初二", 19, "大二","北大");
Student s3 = new Student("初三", 20, "大三","哈佛");
Map<String,Student> studentMap = new HashMap<>();
studentMap.put(s1.name,s1);
studentMap.put(s2.name,s2);
studentMap.put(s3.name,s3);
String name = "初三";
System.out.println(studentMap.get(name));
Student s4 = new Student("初二",22,"大四","陕科大");
studentMap.put(s4.name,s4);
String name2 = "初二";
System.out.println(studentMap.get(name2));
Student ss = studentMap.getOrDefault("初五",new Student("初五",12,"一年级","小学"));
System.out.println(ss);
// 遍历 Map
for (Map.Entry<String,Student> entry : studentMap.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
// 用迭代器来遍历
Iterator<Map.Entry<String,Student>> iterator = studentMap.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String,Student> entry = iterator.next();
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
Set 的示例代码
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class TestSet {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
// 加入元素,add 加入多个相同元素,在 Set 中只有一份,作用:去重
set.add("初一");
set.add("初二");
set.add("初三");
set.add("初四");
set.add("初五");
// 看某元素是否在 Set 中存在
System.out.println(set.contains("初一"));
// 删除某元素
set.remove("初一");
System.out.println(set.contains("初一"));
System.out.println(set);
for (String s:set) {
System.out.println(s);
}
// 用迭代器来遍历
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}