基础 Map集合 HashMap TreeMap 基础使用"/>
Java基础 Map集合 HashMap TreeMap 基础使用
开发环境:
Eclipse2022+ JDK1.8
1. 概述
Map是一种键-值(key-value)集合,每一个元素都包含一个key对象和一个value对象,且key和value之间存在一对一的关系。key值不允许重复,value可以重复。
Map接口主要的实现类有HashMap和TreeMap。HashMap按哈希算法存取键对象。TreeMap可以对键对象进行排序。
HashMap、TreeMap均实现Map接口,两者均继承AvstractMap类。HashMap的元素是无序的,TreeMap默认是按key值升序。两者在基础使用上大部分相同。如果对集合元素有排序要求,可以使用TreeMap, 没有的话,建议使用HashMap.
2. 定义与声明
Map<String,String> users = new HashMap<String,String>();
HashMap<String,String> users = new HashMap<String,String>();
TreeMap<String,String> users= new TreeMap<String,String>();
3. 基础功能
通过以下代码,可以对基础功能进行一个基本的认识。
3.1 HashMap
package map;import java.util.*;public class MapTest {public static void main(String[] args) {HashMap<String,String> users = new HashMap<String,String>();//增加元素users.put("44", "李元昊");users.put("11", "张浩太");users.put("33", "王强文");users.put("55", "王路路");users.put("22", "刘思诚");//如果key值重复 实际处理是替换掉了原来的users.put("55", "范清清");System.out.println(users);//返回所有value集合//System.out.println(users.values());//替换1//users.replace("11", "王大锤");//System.out.println(users);//替换2//users.replace("22", "刘思诚", "李院长");//System.out.println(users);//根据key值删除元素//users.remove("11");//根据key-value值删除元素//users.remove("22", "刘思诚");//清除列表//users.clear();//获取列表个数 如果为0 判断为空 也可以通过isEmpty()判断//System.out.println("元素个数"+ users.size());////if (users.isEmpty()) {// System.out.println("users为空!"+ users.size());//} else {// System.out.println("users不为空!"+ users.size());//}//根据key判断是否存在//if (users.containsKey(String.valueOf("11"))){// System.out.println("有key为11的学生!");//}//根据value判断是否存在//if (users.containsValue(String.valueOf("王强文"))){// System.out.println("有value为[王强文]的学生!");//}//根据key获取value值//System.out.println(users.get("11"));//Map数据复制//Map<String, String> map= new HashMap<String,String>();//map.putAll(users);//System.out.println(map);//遍历1 推荐这种//for(Map.Entry<String,String> entry: users.entrySet()) {// System.out.println("key:"+ entry.getKey()+ " value:"+ entry.getValue());//}//遍历2//for(Map.Entry entry: users.entrySet()) {// System.out.println("key:"+ entry.getKey()+ " value:"+ entry.getValue());//}//遍历3//Iterator it= users.keySet().iterator();//while (it.hasNext()) {// String key= it.next().toString();// String value= users.get(key);// System.out.println("key:"+ key+ " value:"+ value);//}//遍历4//for(String key: users.keySet()) {// System.out.println("key:"+ key+ " value:"+ users.get(key));//}}}
3.2 TreeMap
拥有HashMap的绝大部分方法,且有自己的方法. 主要是一个排序。
package map;import java.util.*;public class TreeMapTest {public static void main(String[] args) {TreeMap<String,String> users= new TreeMap<String,String>();//增加元素users.put("44", "李元昊");users.put("11", "张浩太");users.put("33", "王强文");users.put("55", "王路路");users.put("22", "刘思诚");//排序 默认是按key值升序System.out.println(users);//排序 倒序//System.out.println(users.descendingMap());//获取第一个元素//System.out.println(users.firstEntry().toString());//获取第一个元素key值//System.out.println(users.firstEntry().getKey());//获取第一个元素value值//System.out.println(users.firstEntry().getValue());//获取最后一个元素//System.out.println(users.lastEntry().toString());//获取最后一个元素key值//System.out.println(users.lastEntry().getKey());//获取最后一个元素value值//System.out.println(users.lastEntry().getValue());//返回第一个key大于等于33的键值对//System.out.println(users.ceilingEntry("33"));//返回所有key大于等于33的键值对 tailMap()有第二个参数 默认true 表示包含等于//System.out.println(users.tailMap("33"));//返回所有key大于等于33的键值对 tailMap()有第二个参数 设置false 表示不包含等于//System.out.println(users.tailMap("33", false));//返回第一个key小于等于33的键值对//System.out.println(users.floorEntry("33"));//返回所有key小于33的键值对 headMap()有第二个参数 默认false 表示不包含等于//System.out.println(users.headMap("33"));//返回所有key小于33的键值对 headMap()有第二个参数 设置true 表示包含等于//System.out.println(users.headMap("33", true));//如果key值重复 实际处理是替换掉了原来的//users.put("55", "范清清");//System.out.println(users);//返回所有value集合//System.out.println(users.values());//替换1//users.replace("11", "王大锤");//System.out.println(users);//替换2//users.replace("22", "刘思诚", "李院长");//System.out.println(users);//根据key值删除元素//users.remove("11");//根据key-value值删除元素//users.remove("22", "刘思诚");//清除列表//users.clear();//获取列表个数 如果为0 判断为空 也可以通过isEmpty()判断//System.out.println("元素个数"+ users.size());//if (users.isEmpty()) {// System.out.println("users为空!"+ users.size());//} else {// System.out.println("users不为空!"+ users.size());//}//根据key判断是否存在//if (users.containsKey(String.valueOf("11"))){// System.out.println("有key为11的学生!");//}//根据value判断是否存在//if (users.containsValue(String.valueOf("王强文"))){// System.out.println("有value为[王强文]的学生!");//}//根据key获取value值//System.out.println(users.get("11"));//Map数据复制//Map<String, String> map= new TreeMap<String,String>();//map.putAll(users);//System.out.println(map);//遍历1 推荐这种//for(Map.Entry<String,String> entry: users.entrySet()) {// System.out.println("key:"+ entry.getKey()+ " value:"+ entry.getValue());//}//遍历2//for(Map.Entry entry: users.entrySet()) {// System.out.println("key:"+ entry.getKey()+ " value:"+ entry.getValue());//}//遍历3//Iterator it= users.keySet().iterator();//while (it.hasNext()) {// String key= it.next().toString();// String value= users.get(key);// System.out.println("key:"+ key+ " value:"+ value);//}//遍历4//for(String key: users.keySet()) {// System.out.println("key:"+ key+ " value:"+ users.get(key));//}}}
4. 结束
学习整理。
更多推荐
Java基础 Map集合 HashMap TreeMap 基础使用
发布评论