Hash Map集合和Hash Set集合

古燈青衫發表於2021-01-30

 

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);
}
}
 


相關文章