【javase复习】## day9 Map接口 ##
来源:互联网 发布:物品识别软件 编辑:程序博客网 时间:2024/05/22 06:10
Map接口
List 和Set都是单例数据集合
成对的数据则么办?
所以有 双例集合!!
Map接口!
实现类存储的都是键值对: 键不可重复,值可以重复
————–Map
———————HashMap
———————TreeMap
———————HashTable
Map接口的方法:
添加: put(K key, V value)//返回之前与这个键关联的值 如果之前没有就返回null putAll(Map<? extends K,? extends V> m) 删除 remove(Object key) //根据键删除,返回的是值 如果没有 则返回null clear() 获取: get(Object key) size() 判断: containsKey(Object key) containsValue(Object value) isEmpty() 迭代: keySet() values() entrySet()
这里重点记录一下迭代方法!!
迭代: keySet() //返回映射中包含键的Set视图 values() //返回映射中包含值的Collection视图 entrySet() //将键值自定义成Entry类,返回这个类的Set视图
如何迭代遍历呢??
① 用keySet方法返回所有键的Set,然后遍历Set的同时取出对应的值:
只有键。。。还要自己再一个个查出值。。麻烦
public class rrr { public static void main(String[] args) { Map<String,String> m = new HashMap<String,String>(); m.put("周", "老婆"); m.put("骆", "老公"); m.put("钟汉良", "老公"); Set<String> keys = m.keySet(); //把所有的键存储到一个Set集合返回 Iterator<String> it =keys.iterator(); while(it.hasNext()){ String key =it.next(); String value = m.get(key); System.out.println("键"+key+"所对应的值是"+value); } }}
键骆所对应的值是老公键周所对应的值是老婆键钟汉良所对应的值是老公
② 使用values方法进行遍历。。 只有值,没有键
public class rrr { public static void main(String[] args) { Map<String,String> m = new HashMap<String,String>(); m.put("周", "老婆"); m.put("骆", "老公"); m.put("钟汉良", "老公"); Collection<String> c =m.values(); Iterator<String> it = c.iterator(); while(it.hasNext()) System.out.println(it.next()); }}
老公老婆老公
③ 用entrySet方法返回一个Set,该Set中存储的是一个自定义类,包含key和value两个属性。
其实:Entry是map里的静态内部类
class Map{ //静态内部类 static class Entry<K ,V>{ K key; V value; } }
public class rrr { public static void main(String[] args) { Map<String,String> m = new HashMap<String,String>(); m.put("周", "老婆"); m.put("骆", "老公"); m.put("钟汉良", "老公"); Set<Entry<String,String>> s =m.entrySet(); Iterator<Entry<String,String>> it = s.iterator(); while(it.hasNext()) System.out.println(it.next()); }}
骆=老公周=老婆钟汉良=老公
实现类HashMap
原理: 跟HashSet一样, 都是维护了一个哈希表。
添加时 ①首先根据hashCode方法确定位置
②如果那个位置不存在元素就直接放入
③如果那个位置存在元素就调用equals方法判断是否相同,如果不相同就放进去,如果相同,就更新替换掉原先键值对的值!!!
实现类TreeMap
底层依赖红黑树实现: 对元素的键进行排序存储
排序特性跟TreeSet一样~~
注意: 如果键比较相同 , 则只替换值!!
实现类HashTable
JDK1.0
跟HashTable一样, 线程安全效率低
0 0
- 【javase复习】## day9 Map接口 ##
- 【javase复习】## day9 Collections Arrays ##
- 【javase复习】## day9 IO---- File类 ##
- 【javase复习】## day9 IO字节流 ##
- 【javase复习】## day9 静态导入 增强for循环 枚举类 ##
- JavaSE复习之五 基础知识:接口
- 【javase复习】## day4 抽象类、接口 ##
- 【javase复习】## day8 集合 Set接口 ##
- Java基础复习:Map接口
- Java复习之Map接口
- python学习-Day9-练习题复习
- javaSE-Map
- JavaSE Map
- iOS开发-Day9-C的复习
- JAVASE接口
- day9
- day9
- Day9
- BufferedReader和BufferedWriter
- Could not find or load main class InterfaceDemo
- 使用sklearn进行集成学习(二)
- [转]react native 真机调试appdelegate.m找不到ip地址的处理
- 生活中的物理、化学(三)
- 【javase复习】## day9 Map接口 ##
- Android02_Android常用布局及基本UI控件
- JS基础语法-要懂的规则
- hdu3938Portal
- 高德地图WebAPI:行驶距离测量
- Intel汇编语言程序设计学习-第二章 IA-32处理器体系结构-上
- pyhton的切片操作
- 华为路由器ISIS协议
- HTML 通过ID、class、tagName(标签名字)获取 DOM