Map基本概念 数据结构中Map是一种重要的形式.Map接口定义的是查询表,或称查找表,其用于储存所谓的键/值对(key-value pair),其中key是映射表的索引. JDK结构中还存在实现Map类似功能的遗留集合: Hashtable(线程安全的散列映射表) Properties(属性映射表),常用于配置文件(如db.properties). Map接口源代码 package java.util; /* 映射表(查询表)泛型接口 */public interface Map<K,V>…
集合: 集合就是一个容器,他可以存储对象,我们说集合就是一个可变的数组 集合框架特点 1.list和set集合同时实现了collection接口 2.set集合存储唯一,无序的对象. 3.list 存储的不唯一,有序的对象(顺序,按存储的先后顺序) 4.map接口存储的方式:键值对进行存储,键是唯一,值不唯一,且无序 ,map是单独的一个接口 5.我们的集合框架都在,java.utill这个包里面 <List接口> 1.list接口有两个实现类:arraylist,linkedList 2.a…
Java集合(十)继承Map接口的HashMap 一.HashMap简介(基于JDK1.8) HashMap是基于哈希表(散列表),实现Map接口的双列集合,数据结构是“链表散列”,也就是数组+链表 ,key唯一的value可以重复,允许存储null 键null 值,元素无序.JDK1.8对HashMap进行一个大的优化,底层数据结构有“数组+链表”的形式,变成“数组+链表+红黑树”的形式,当链表长度超过阈值时,将链表转换为红黑树,这样大大减少了查找时间. HashMap 的实例有两个参数影响其…
Java中的集合(七)双列集合顶层接口------Map接口 一.Map接口的简介 通过List接口,我们知道List接口下的集合是单列集合,数据存储是单列的结构.Map接口下是一个键值对(key-value)的映射接口,Map集合中,不能包含重复的键,每个键只能映射一个值(元素),值可以重复,因此可以根据key快速查找value的值. (一).Hash(散列/哈希)的概念 1.hash(哈希) 想要清楚Map的数据结构,哈希是基本概念,我们先来看看什么是哈希?hash翻译为"散列",…
Collentions工具类--java.util.Collections Collentions是Java集合框架中,用来操作集合对象的工具类,也是Java集合框架的成员,与List.Map和Set是并列的. Collections.sort() 排序方法,实现对List对象中的元素进行排序. package com.test.collection; import java.util.ArrayList; import java.util.Collections; import java.ut…
原文地址http://blog.csdn.net/lioncode/article/details/8673391 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系:            java.util        +Collection 这个接口extends自 --java.lang.Iterable接口           +List 接口               -ArrayList 类              -LinkedLis…
一.集合框架 1.1 为什么要使用集合框架? 当我们需要保持一组一样(类型相同)的元素的时候,我们应该使用一个容器来保存,数组就是这样一个容器. 那么,数组的缺点是什么呢? 数组一旦定义,长度将不能再变化. 然而在我们的开发实践中,经常需要保存一些变长的数据集合,于是,我们需要一些能够动态增长长度的容器来保存我们的数据. 而我们需要对数据的保存的逻辑可能各种各样,于是就有了各种各样的数据结构.我们将数据结构在Java中实现,于是就有了我们的集合框架.   1.2 集合框架的内容 注意:  Col…
文章目录 集合框架 List(列表) ArrayList 案例 Set HashSet 案例 iterator(迭代器) Map HashMap 案例 集合总结 参考资料 重新搞一波 复习巩固 简单记录 慕课网 imooc Java工程师 List Set Map 集合框架 疑问: 为什么使用集合,而不用数组? 我也不知道,那为什么要使用数组呢? 我们需要存储一组(类型相同)的元素的时候,使用数组来保存的.(数组具有固定的大小,存储数据类型是单一的.) 但数组一旦定义,长度不能再变化.想保存动态…
1. TreeMap类的概述: 键是红黑树结构,可以保证键的排序和唯一性. 2. TreeMap案例: TreeMap<String, String> 代码示例: package cn.itcast_04; import java.util.Set; import java.util.TreeMap; /* * TreeMap:是基于红黑树的Map接口的实现. * * HashMap<String,String> * 键:String * 值:String */ public cl…
1. LinkedHashMap类的概述 LinkedHashMap:Map接口的哈希表(保证唯一性) 和 链接(保证有序性)列表实现,具有可预知的迭代顺序. 2. 代码示例: package cn.itcast_03; import java.util.LinkedHashMap; import java.util.Set; /* * LinkedHashMap:是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序. * 由哈希表保证键的唯一性 * 由链表保证键盘的有序(存储和取出的顺序一…
1. HashMap集合 HashMap集合(HashMap<String,String>)的案例 2. 代码示例: package cn.itcast_02; import java.util.HashMap; import java.util.Set; /* * HashMap:是基于哈希表的Map接口实现. * 哈希表的作用是用来保证键的唯一性的. * * HashMap<String,String> * 键:String * 值:String */ public class…
Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的key不容许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false. key和value之间存在单向一对一关系,即通过指定的key,总能找到唯一的.确定的value.从Map中取出数据时,只要给出指定的key,就可以取出对应的value. 如果把Map里的所有key放在一起看…
前言 Map是java中用于存储键值对映射的接口.是解决编程问题最常用的数据结构之一.在工作中,有时候为实现一个功能可能写了好大一段代码,运行是ok了,但是就是不想回头再看,不敢相信自己写的这么烂.这个时候其实可以多考虑下map这种结构了,说不定能更简洁地实现呢.引用<编程思想>中一个代码示例:测试Random可以产生理想的数字分布.其实就是统计一个产生随机数的次数. public class RandomTest { @Test public void testRandom() { Rand…
1. HashMap和Hashtable区别 ? • Hashtable:线程安全,效率低.不允许null键和null值 • HashMap:线程不安全,效率高.允许null键和null值 package cn.itcast_07; import java.util.Hashtable; /* * 1:Hashtable和HashMap的区别? * Hashtable:线程安全,效率低.不允许null键和null值 * HashMap:线程不安全,效率高.允许null键和null值 * */ p…
本节重点思维导图 集合框架 有序无序:元素放入的顺序与取出的顺序是否一致,一致即为有序,不一致即无序. List:允许重复.有序 ArrayList:长度可变的数组,遍历速度快 LinkedList:链表:添加删除节点速度快 import java.util.ArrayList; import java.util.Date; import java.util.List; public class Demo { public static void main(String[] args) { Li…
1. Map集合的功能概述 (1)添加功能 V put(K key,V value):添加元素.这个其实还有另一个功能?先不告诉你,等会讲 如果键是第一次存储,就直接存储元素,返回null 如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值 (2)删除功能 void clear():移除所有的键值对元素 V remove(Object key):根据键删除键值对元素,并把值返回 (3)判断功能 boolean containsKey(Object key):判断集合是否包含指定的键 bo…
1. HashMap集合(HashMap<Student,String>)的案例 HashMap<Student,String>键:Student      要求:如果两个对象的成员变量值都相同,则为同一个对象.值:String HashMap是最常用的Map集合,它的键值对在存储时要根据键的哈希码来确定值放在哪里. HashMap 中键作为对象必须重写Object的hashCode()方法和equals()方法 HashMap 底层是哈希表,哈希表的实现依赖于hashCode()…
1. HashMap集合(HashMap<String,Student>)的案例 HashMap是最常用的Map集合,它的键值对在存储时要根据键的哈希码来确定值放在哪里. HashMap的底层是利用hash算法算出键对应的哈希码,然后我们把值存放在这个哈希码对应的存储位置.当我们需要取出这个值的时候,我们利用hash算法算出键对应的哈希码,然后就可以快速定位到哈希码对应的存储地方的值. 哈希表结构主要作用:快速定位查找. 2. 代码示例: (1)Student.java: package cn…
1. Map集合的遍历(键值对对象找键和值) Map -- 夫妻对  思路:  A: 获取所有结婚证的集合  B: 遍历结婚证的集合,得到每一个结婚证  C: 根据结婚证获取丈夫和妻子 转换:  A: 获取所有键值对对象的集合  B: 遍历键值对对象的集合,得到每一个键值对对象  C: 根据键值对对象获取键和值 2. 代码示例: package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.ut…
1. Map集合的遍历  Map -- 夫妻对 思路:  A:把所有的丈夫给集中起来.  B:遍历丈夫的集合,获取得到每一个丈夫.  C:让丈夫去找自己的妻子.  转换:  A:获取所有的键  B:遍历键的集合,获取得到每一个键  C:根据键去找值 2. 代码示例: package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; public class MapDemo3 {…
1. Map集合的概述: public interface Map<K,V> 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取学生姓名,请问怎么做呢?如果采用前面讲解过的集合,我们只能把学号和学生姓名作为一个对象的成员,然后存储整个对象,将来遍历的时候,判断,获取对应的名称.但是呢,如果我都能把学生姓名拿出来了,我还需要根据编号去找吗?针对我们目前的这种需求:仅仅知道学号,就想知道学生姓名的情况,Java就提供了一种新的集合 Map.通过查看A…
1. 为了更符合要求: 这次的数据就看成是学生对象. 传智播客 bj 北京校区 jc  基础班 林青霞 27     风清扬 30      jy  就业班   赵雅芝 28  武鑫 29 sh 上海校区  jc 基础班  郭美美 20  犀利哥 22  jy 就业班   罗玉凤 21  马征 23   gz 广州校区  jc 基础班  王力宏 30  李静磊 32  jy 就业班  郎朗 31  柳岩 33        xa 西安校区  jc 基础班  范冰冰 27  刘意 30  jy 就…
1. ArrayList集合嵌套HashMap集合并遍历.  需求:         假设ArrayList集合的元素是HashMap.有3个.         每一个HashMap集合的键和值都是字符串.         元素我已经完成,请遍历. 结果:      周瑜---小乔      吕布---貂蝉       郭靖---黄蓉      杨过---小龙女      令狐冲---任盈盈     林平之---岳灵珊 2. 代码示例: package cn.itcast_05; import…
1. ArrayList集合嵌套HashMap集合并遍历. 需求:假设ArrayList集合的元素是HashMap.有3个.每一个HashMap集合的键和值都是字符串.元素我已经完成,请遍历. 结果:    三国演义    吕布    周瑜    笑傲江湖    令狐冲    林平之    神雕侠侣    郭靖    杨过 2. 代码示例: package cn.itcast_05; import java.util.ArrayList; import java.util.HashMap; im…
1. HashMap嵌套HashMap  传智播客          jc    基础班                      陈玉楼  20                      高跃     22          jy    就业班                      李杰     21                      曹石磊  23  先存储元素,然后遍历元素 2. 代码示例: package cn.itcast_05; import java.util.Hash…
1. 首先我们看看统计字符串中每个字符出现的次数的案例图解: 2. 代码实现: (1)需求 :"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1) 分析:   A: 定义一个字符串(可以改进为键盘录入)   B: 定义一个TreeMap集合            键: Character            值:Integer   C: 把字符串转换为字符数组   D: 遍历字符数组,得到每一个字符   E: 拿刚才得…
1. TreeMap(TreeMap<Student,String>)的案例 2. 案例代码: (1)Student.java: package cn.itcast_04; public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.…
1. HashMap集合(键是Integer,值是String的案例) 2. 代码示例: package cn.itcast_02; import java.util.HashMap; import java.util.Set; /* * HashMap<Integer,String> * 键:Integer * 值:String */ public class HashMapDemo2 { public static void main(String[] args) { // 创建集合对象…
Java集合就是一个容器.面向对象语言对事物的体现都是以对象的形式存在,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式.集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象.如果往集合里存放基本数据类型,在存取过程中会有个自动装箱和拆箱. 因为容器中数据结构不同,容器有很多种.不断地将共性功能向上抽取,形成了集合体系,称之为集合框架. 集合框架的顶层就称之为Collection接口.所有的集合类都位于java.util包下,查阅API可以得到如下体系…
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合,代表一种队列集合实现. Java集合框架主要由Collection和Map两个根接口及其子接口.实现类组成.本文仅探讨Map接口及其子接口.实现类. 目录 1. Map接口继承树2. Map接口的基本操作3. Map的遍历4. HashMap类和Hashtable类 4.1 Properties类…