Java~Map的基本使用与Map的三种遍历方式、Set的基本使用

68 阅读1分钟

return "Student{" +

"name='" + name + ''' +

", agg=" + agg +

", garde='" + garde + ''' +

", schlool='" + schlool + ''' +

'}';

}

}

Map的常用使用方法:

  • Map的实例化

Map<String, Student> map = new HashMap<>();

  • 设置key对应的value(要注意key是不可重复的,如果重复,后面来的value会覆盖前面的value)

Student student = new Student("Listen", 20, "001", "Happy");

Student student1 = new Student("Listen", 30, "002", "Day");

Student student2 = new Student("Byke", 40, "003", "Sun");

Student student3 = new Student("Frake", 50, "004", "Mane");

map.put(student.name, student);

//如果有相同的key,新的value会覆盖旧的value

map.put(student.name, student);

map.put(student1.name, student1);

map.put(student2.name, student2);

map.put(student3.name, student3);

  • 返回key对于的value

String name = "Listen";

Student ret = map.get(name);

  • 回key对于的value,如果key不存在,返回默认值

map.getOrDefault("mm", new Student("mm", 50, "009", "shine"))

  • 删除key对应的映射关系

map.remove(name);

  • 返回所有key的不重复集合

Set set = map.keySet();

  • 返回所有value的可重复集合

Collection collections = map.values();

  • 返回所有的key-value映射关系

Set<Map.Entry<String, Student>> set1 = map.entrySet();

  • 判断是否有可以 或者判断是否有value

boolean containsKey(Object key);

boolean containsValue(Object value);

  • Map的遍历方式

//遍历map

for (Map.Entry<String, Student> m : map.entrySet()

) {

System.out.println(m.getKey() + ":" + m.getValue());

}

//用迭代器遍历map

System.out.println("=============");

Iterator<Map.Entry<String, Student>> iterator = map.entrySet().iterator();

while (iterator.hasNext()) {

Map.Entry<String, Student> entry = iterator.next();

System.out.println(entry.getKey() + ":" + entry.getValue());

}

//返回所有map的映射关系,并将它变成set里的key

Set<Map.Entry<String, Student>> set1 = map.entrySet();

//然后遍历set

Map最常用的地方-统计

Map<Integer, Integer> map = new TreeMap<>();

for(int i : nums) {

Integer tmp = map.get(i);

if(tmp == null) {

map.put(i,1);

}else {

map.put(i,tmp + 1);

}

}

//第二种方法

Map<Integer, Integer> map = new TreeMap<>();

for(int i : nums) {

map.put(i,map.getOrDefault(i,0) + 1);

}

}

Set的使用:

  • 添加元素,但重复元素不会添加成功

Set set = new TreeSet<>();

set.add("aaa");

set.add("bbb");

set.add("aaa");

set.add("ccc");

//有重复的set只保留一份

  • 判断0是否在集合中

boolean contains(Object o)

  • 删除集合中的0

boolean remove(Object o)

  • 返回迭代器

Iterator iterator = set.iterator();

  • 清空集合

void clear();

Set的遍历方式:

//遍历方式 for each

for (String str : set

) {

System.out.print(str + " ");

}

System.out.println();