Hash Map集合和Hash Set集合
HashMap集合的使用
1.1、每个集合对象的创建(new)
1.2、从集合中添加元素
1.3、从集合中取出某个元素
1.4、遍历集合
public class HashMapTest {
public static void main(String[] args) {
// 创建Map集合
Map<Integer, String> map = new HashMap<>();
// 添加元素
map.put(1, "小明");
map.put(8, "小周");
map.put(15, "小张");
map.put(31, "小剑");
map.put(31, "king");
// 获取元素个数
System.out.println(map.size());
// 获取key是8的元素
System.out.println(map.get(8));
// 重点,遍历Map集合
// 第一种方式,获取所有的key,遍历key的时候,通过key来获取value。
Set<Integer> keys = map.keySet();
for (Integer key : keys) {
System.out.println(key + "=" + map.get(key));
}
// 第二种方法:是将Map集合转换成Set集合Set集合中的每一个元素是node。
// 这个node节点有key和value
Set<Map.Entry<Integer, String>> nodes = map.entrySet();
for (Map.Entry node : nodes) {
System.out.println(node);
}
}
}
HashSet集合的使用
1.1、每个集合对象的创建(new)
1.2、从集合中添加元素
1.3、从集合中取出某个元素
1.4、遍历集合
1.5、测试HashSet集合的特点
public class HashSetTest {
public static void main(String[] args) {
// 创建Set集合
Set<String> set = new HashSet<>();
// 添加元素
set.add("abc");
set.add("def");
set.add("ghi");
set.add("jkl");
System.out.println(set.size());
// 遍历集合
// 迭代器
Iterator<String> it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("----------------");
// 增强for循环
for (String s : set) {
System.out.println(s);
}
// 无序不可重复
set.add("abc");
set.add("abc");
set.add("abc");
System.out.println(set.size());
set.add("1");
set.add("king");
set.add("2");
for (String s : set) {
System.out.println("---->" + s);
}
System.out.println("----------------");
// 测试Student
Set<Student> students = new HashSet<>();
students.add(new Student(01,"小明"));
students.add(new Student(02,"小花"));
students.add(new Student(01,"小明"));
System.out.println(students.size());
// 遍历
for (Student s : students) {
System.out.println(s);
}
}
}
class Student {
int id;
String name;
public Student() {
}
public Student(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return Objects.equals(name, student.name);
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}