Java中的Map集合是一种用于存储键值对的数据结构,其中每个键都可以映射到一个唯一的值。Map的常用实现类有HashMap、TreeMap和LinkedHashMap等。
Map集合的常用方法有:
- put(key, value):向Map中添加键值对。
- get(key):根据键获取对应的值。
- remove(key):根据键删除对应的键值对。
- containsKey(key):判断Map中是否包含指定的键。
- containsValue(value):判断Map中是否包含指定的值。
- keySet():返回Map中所有键的集合。
- values():返回Map中所有值的集合。
- entrySet():返回Map中所有键值对的集合。
例如,我们可以创建一个HashMap对象用于存储学生的姓名和对应的成绩:
Map<String, Integer> scores = new HashMap<>();
scores.put("Alice", 90);
scores.put("Bob", 80);
scores.put("Charlie", 70);
然后,我们可以根据键来获取对应的值:
int score = scores.get("Alice"); // score = 90
也可以遍历Map中的所有键值对:
for (Map.Entry<String, Integer> entry : scores.entrySet())
{
System.out.println(entry.getKey() + ": " + entry.getValue());
}
hashmap类
Java中的HashMap是一种基于哈希表实现的Map集合,它用于存储键值对,其中每个键都可以映射到一个唯一的值。HashMap的底层实现是一个数组和链表结合的数据结构,它通过哈希函数将键映射到数组中的一个位置,然后在该位置上使用链表存储具有相同哈希值的键值对。需要注意的是,HashMap并不是线程安全的,如果在多线程环境下使用,需要进行额外的同步处理。另外,如果HashMap中的键对象是自定义的类,需要注意该类是否正确实现了equals()和hashCode()方法。
TreeMap类
Java中的TreeMap是一种基于红黑树实现的有序Map集合,它与HashMap类似,也是用于存储键值对,但是不同之处在于TreeMap中的键值对是按照键的自然顺序进行排序的。
treemap特性:
1.向treemap添加元素时,如果元素的键具备自然顺序,那么就会按照键的自然顺序排序
2.如果元素的键不具备自然顺序,那么键所属的类必须实现comparable接口,把键的比较规则定义在compareTo()方法里
3.如果两者都不具备,那么就必须在创建treemap对象的时候传入比较器