局域网内建设网站,望城经开区建设开发公司门户网站,域名服务器搭建,wordpress分类目录和页面文章目录一、集合概念二、map集合1、Map集合的特点2、HashMap2.1 HashMap特点2.2 创建对象2.3 常用方法2.4 遍历2.4.1 使用entrySet遍历2.4.2 使用keySet遍历3、HashMap的key去重原理一、集合概念
集合就是用于存储多个数据的容器。相对于具有相同功能的数组来说#xff0c;集…
文章目录一、集合概念二、map集合1、Map集合的特点2、HashMap2.1 HashMap特点2.2 创建对象2.3 常用方法2.4 遍历2.4.1 使用entrySet遍历2.4.2 使用keySet遍历3、HashMap的key去重原理一、集合概念
集合就是用于存储多个数据的容器。相对于具有相同功能的数组来说集合的长度可变会更加灵活方便。集合主要有两个顶层接口Collection和Map。
二、map集合
1、Map集合的特点
Map接口是双列集合的顶层接口下面是Map接口的定义
interface MapK,V K键的类型V值的类型存储的数据必须包含key和value。key和value在Map集合中是一一对应的关系。一个key对应一个value。key在map集合中是不会重复的。
2、HashMap
2.1 HashMap特点
底层数据结构是哈希表存储元素的顺序和遍历获取出来的顺序可能不一致key不会重复
2.2 创建对象
HashMapkey的数据类型,value的数据类型 map new HashMap(); public static void main(String[] args) {HashMapString,String map new HashMap();HashMapString,Integer map new HashMap();}2.3 常用方法
V put(K key, V value) //添加元素如果key不存在就添加如果key已经存在则是修改对应的value,并且返回修改前的valueV get(Object key) //根据key获取对应的value值返回。如果key不存在就返回nullV remove(Object key) //根据key删除map中对应的键值对。并且把删除的value返回boolean containsKey(Object key) //判断key是否存在int size() //集合中键值对的对数void clear() //清空集合中的所有键值对 public static void main(String[] args) {HashMapString,String map new HashMap();//map.put()//添加元素map.put(name, 三更);map.put(age, 15);String v map.put(name, 三更草堂);String name map.get(name);String age map.get(age);//删除元素String delV map.remove(age);//判断key是否存在if(map.containsKey(name)){String age111 map.get(name);//nullSystem.out.println(age111.length());}//sizeint size map.size();map.clear();}2.4 遍历
2.4.1 使用entrySet遍历
map集合的entrySet方法可以获取一个Set集合集合中存放的是Entry对象一个Entry对象相当于一个键值对。我们可以遍历set集合拿到Entry对象然后获取出里面的键和值。 public static void main(String[] args) {HashMapString,String map new HashMap();map.put(name,三更);map.put(age,15);SetMap.EntryString, String entries map.entrySet();//使用迭代器遍历entrySetIteratorMap.EntryString, String it entries.iterator();while (it.hasNext()){Map.EntryString, String entry it.next();System.out.println(entry.getKey()entry.getValue());}}public static void main(String[] args) {HashMapString,String map new HashMap();map.put(name,三更);map.put(age,15);SetMap.EntryString, String entries map.entrySet();//使用foreach遍历entrySetfor (Map.EntryString, String entry : entries) {System.out.println(entry.getKey()entry.getValue());}}2.4.2 使用keySet遍历
map集合的keySet方法可以获取一个Set集合集合中存放的是所有的key。我们可以遍历set集合拿到key对象然后通过key获取对应的value。 public static void main(String[] args) {HashMapString,String map new HashMap();map.put(name,三更);map.put(age,15);SetString keys map.keySet();for (String key : keys) {System.out.println(keymap.get(key));}}3、HashMap的key去重原理
HashMap在添加元素的时候会判断集合中是否有key和本次存入的key相同。判断的时候主要是通过hashCode方法和equals方法来进行判断的。hashCode相同并且equals判断也相同就会认为是同一个key。Alt insert 重写hashCode方法和equals方法
注意HashSet存储数据其实也是使用了HashMap。所以如果往HashSet中存储自定义对象也要看情况是否需要重写hashCode方法和equals方法。