精华内容
下载资源
问答
  • 双列集合顶层接口 K: key 键 键是唯一的 V: value 值 值是可以重复的 常用子类 TreeMap 键 排序 唯一 HashMap 键 无序 唯一 LinkedHashMap 键 有序 唯一 TreeMap集合 :如何排序? 怎么...

    Map<K,V> 双列集合的顶层接口

    K: key 键 键是唯一的
    V: value 值 值是可以重复的

    常用子类 
    	TreeMap
    		键 排序 唯一  					
    	HashMap
    		键 无序 唯一 
    	LinkedHashMap
    	    键 有序 唯一
    

    TreeMap集合 :如何排序? 怎么保证键的唯一?
    1.元素实现 自然排序接口 Comparable 重写compareTo方法 定义比较规则 如果返回0 则代表元素相同
    2.创建集合时,在构造方法中传入比较器对象 Comparetor 重写compare方法 定义比较规则 如果返回0 代表元素相同

    HashMap和linkedHashMap如何保证键的唯一? 重写hashCode和equals方法
    先比较hashCode
    不同 直接添加
    相同 比较equals
    不同 添加
    相同 覆盖值

    两种遍历方式
    	1.使用键找值的方式 
    		Set<K> keySet() 获取所有键的Set集合
    		
    		1.创建Map集合 添加元素
    		2.map集合调用keySet方法 获取所有key的Set集合
    		3.遍历Set集合  依次获取到每个元素(key)
    		4.调用Map集合的get(object key) 根据键找到对应的值
    				
    	2.使用键值对关系的方式 
    		Set<Map.Entry<K,V>>	entrySet()   获取所有键值对关系对象的Set集合
    		
    		1.创建Map集合 添加元素
    		2.调用entrySet方法 获取到存储所有结婚证(键值对关系)对象的Set集合
    		3.遍历Set集合 依次获取到每个结婚证(Entry )
    		4.通过结婚证(Entry) 的 getKey 获取到键  getValue 获取到值
    

    可变参数
    使用前提 :参数类型确定,个数不确定
    可以传入当前类型的任意个数据

    格式 
    	参数类型...参数名
    
    例子 
    	public static int sum(int...a){};
    
    注意事项
    	1.可变参数本质上就是数组 也可以直接传数组
    	2.一个方法只能有一个可变参数
    	3.如果方法有多个参数 可变参数要放到最后面
    	4.最牛的可变参数 Object...obj   任意类型 任意个数
    
    展开全文
  • 双列集合存储元素的方式是一对一对的元素进行存储,它的顶层接口是Map接口 Map接口的特点: Map接口的键是唯一的,值可以重复 每一个键只能对应一个值 Map集合是无序的 Map接口的实现类是HashMap类 HashMap集合要想...

    1.概述

    双列集合存储元素的方式是一对一对的元素进行存储,它的顶层接口是Map接口

    • Map接口的特点:
      Map接口的键是唯一的,值可以重复
      每一个键只能对应一个值
      Map集合是无序的
    • Map接口的实现类是HashMap类
    • HashMap集合要想保证键唯一,键所在的类,必须重写hashcode和equals方法

    2.成员方法

    2.1 添加功能

    V put(K key, V value) : 添加一个key=value(键值对)

    • 当key不存在 , 返回的是null
      当key存在 , 用当前的键值对 ,返回当前的值
    • V代表的是值的类型

    2.2 判断功能

    • boolean containsKey(Object key) : 是否包含指定的key,包含返回true
    • boolean containsValue(Object value) : 是否包含指定的value , 包含返回true
    • boolean isEmpty() : 判断Map是否有键值对 , 集合为空返回true

    2.3 删除功能

    • void clear(): 清空Map中所有的键值对
    • V remove(Object key) 根据键删除键值对,删除成功返回被删除的键值对的值Value,删除失败返回null

    2.4 获取功能

    • V get(Object key) 根据key(键)获取Map中对应的Value(值)

    • int size():返回Map中共有多少个键值对

    • Set keySet():将Map所有的key封装到一个set集合

    • collection value():将Map中所有的value封装到一个collection体系的集合

    • set<Map.Entry<K,V> entrySet():将Map集合中的每一个键值对,封装成一个Entry对象,并存到一个Set集合中
      Map.Entry<K,V>中的方法:
      K getKey():返回与此对应的键
      V.getValue():返回与此对应的值

    3.案例

    采用两种方式遍历Map集合

    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    
    public class MapDemo {
        public static void main(String[] args) {
            //1.创建集合对象
            HashMap<String,String> hm = new HashMap<>();
            //2.创建元素对象,并将元素添加到集合中
            hm.put("1","zhangsan");
            hm.put("2","lisi");
            //遍历集合
            //键找值,获取Map集合中所有的键
            Set<String> set = hm.keySet();
            for (String key : set) {
                String value = hm.get(key);
                System.out.println(key + ":" + value);
            }
            //获取键值对象,找键和值
            //Map集合中的每一个键值对,都封装成一个Entry对象,并存在一个set集合
            Set<Map.Entry<String,String>> set2 = hm.entrySet();
            //使用增强for遍历set集合,拿到每一个entry对象
            for (Map.Entry<String, String> entry : set2) {
            	//String key = entry.getkey();
            	//String value = entry.getvalue();
                System.out.println(entry.getKey()+entry.getValue());
            }
        }
    }
    
    展开全文
  • Map是双列集合顶层接口,所有子接口的基础方法都在这个接口里面进行了定义,顾名思义,Map相当于对一类地图式的数据进行存储,我们使用地图的时候,地图上的点和真实世界的点进行了一一对应,在Map中,我们利用...

    Map是双列集合的顶层接口,所有子接口的基础方法都在这个接口里面进行了定义,顾名思义,Map相当于对一类地图式的数据进行存储,我们使用地图的时候,地图上的点和真实世界的点进行了一一对应,在Map中,我们利用键值对来对数据进行存储。 

    Map

    Map的特点 

    Map是双列结合的顶层接口,并不属于Collection体系,它与Collection体系共同组合了集合体系

    Map中的数据都是以键值对的形式存储,一个键值(key)对应一个值(value)

    Map中存储的键值对中键是不可以重复的,保证了数据的唯一性,但是不同的键对应的值是可以相同的

    Map的常用方法

    在代码种中进行介绍,都在注释里了:

    public static void main(String[] args) {
    		
    		//因为Map是一个接口,所以利用多态来引用一个实现子类来进行操作,这里用泛型来规定这里面的数据类型
    		Map<String,Integer> m = new HashMap();
    		
    		//put方法,来对Map中进行数据的存入
    		m.put("路飞", 13);
    		m.put("索隆", 14);
    		m.put("山治", 14);
    		m.put("乔巴", 12);
    		System.out.println(m);
    		
    		Map<String,Integer> mm = new HashMap<>();
    		mm.put("娜美", 15);
    		mm.put("罗宾", 16);
    		System.out.println(mm);
    		
    		//putAll方法,将另一个map添加到这个map中
    		m.putAll(mm);
    		System.out.println(m);
    		
    		//isEmpty方法,查看这个集合是否为空
    		System.out.println(m.isEmpty());
    		
    		//size方法,查看元素个数
    		System.out.println(m.size());
    		
    		//clear方法,清空Map集合
    		mm.clear();
    		System.out.println(mm);
    		
    		//containsKey判断map中是否有这个key值
    		System.out.println(m.containsKey("娜美"));
    		
    		//containsValue判断map中是否有这个value值
    		System.out.println(m.containsValue(14));
    		
    		//keySet方法,将key值装入一个set集合
    		Set<String> keySet = m.keySet();
    		System.out.println(keySet);
    		
    		//entrySet将map中数据以键值对的形式返回到一个set集合中
    		//Set集合中有一个类变量Entry,里面也是一个双列集合
    		Set<Entry<String, Integer>> entrySet = m.entrySet();
    		System.out.println(entrySet);
    	}

    输出结果

    {山治=14, 乔巴=12, 索隆=14, 路飞=13}
    {罗宾=16, 娜美=15}
    {山治=14, 罗宾=16, 乔巴=12, 娜美=15, 索隆=14, 路飞=13}
    false
    6
    {}
    true
    true
    [山治, 罗宾, 乔巴, 娜美, 索隆, 路飞]
    [山治=14, 罗宾=16, 乔巴=12, 娜美=15, 索隆=14, 路飞=13]

    HashMap

    hashiMap是map集合中最常用的子类,上述方法的演示也是利用hashMap集合进行演示的,底层是一个哈希表,利用hash表对键值对进行不唯一存储,非线程安全,且允许有键值对存在

    常用方法已经在上述检验过,这里我们对hashMap的遍历进行演示

    利用keySet()方法转化为set集合进行遍历

                    Set<String> keySet = m.keySet();
    		Iterator<String> iterator = keySet.iterator();
    		while(iterator.hasNext()) {
    			String next = iterator.next();
    			Person person = m.get(next);
    			System.out.print(next+"...."+person);
    		}

    利用entrySet()方法转化为Map.Entry<String, Person>对象调用getKey()方法和getValue()方法进行遍历

                    private static void method2(Map<String, Person> m) {
    		Set<Map.Entry<String, Person>> entrySet = m.entrySet();
    		for(Map.Entry<String, Person> mm:entrySet) {
    			System.out.print(mm.getKey()+"...."+mm.getValue());
    		}
    	}

     利用上一种方法获得对象再用迭代器进行遍历

                    private static void method3(Map<String, Person> m) {
    		Set<Entry<String, Person>> entrySet = m.entrySet();
    		Iterator<Entry<String, Person>> iterator = entrySet.iterator();
    		while(iterator.hasNext()) {
    			Entry<String, Person> next = iterator.next();
    			System.out.print(next.getKey()+"...."+next.getValue());
    		}
    	}

     


    TreeMap

    TreeMap没有什么特别的方法,不过里面也是有Tree的特点,利用红黑树进行有序存储,这里同样也是利用重写compareTo方法来进行自定义排序


     LinkedHashSet和LinkedHashMap

    两个子类有着相同的特点是存取顺序都一样,他们的底层是利用哈希表和链表进行去重有序哈希存储

    存储过程为:当进行元素存储的时候,先进行哈希值的判断,如果不一致这时候直接进行存储,每进行一次存储,都是由链表来进行记录地址位置,然后如果哈希值不一样,再利用equals方法进行比较,如果相同那么直接放弃存取,如果不相同,通过散列函数和冲突函数进行计算这个数据的位置,得到位置后,也是用链表进行记录地址。当进行取元素的时候,直接利用链表来进行取出元素。

     

    展开全文
  • Map接口是双列集合顶层接口,每个位置存储一对元素(key, value)  Collection接口是单列集合顶层接口,每个位置存储一个元素

    Map接口是双列集合顶层接口,每个位置存储一对元素(key, value)

             Collection接口是单列集合顶层接口,每个位置存储一个元素

    展开全文
  • 双列集合。 Map&lt;k,v&gt; Key——键 value——值 集合中的键不能重复,每个键只能对应一个值。   共性方法: 增: V put(K key, V value); //添加一个键值对,返回之前与该key关联的值,如没有...
  • Map:顶层接口,该集合存储的是键值对,而且键是唯一的,Map和Set很像,Set集合底层就是使用了Map集合。 Map集合没有迭代器,要取出元素必须先将Map集合转换成Set集合才能遍历元素  |--->HashTable(JDK1.0):  底层是...
  • 集合

    2020-12-26 00:01:29
    集合: 特点: 1、只能存放引用数据类型的数据 2、长度可变 3、可以同时存放不同类型引用数据类型数据【一般不...双列集合【Map】 实现类: HashMap linkedHashMap Collection: 单列集合的顶层接口 定义单列集合的共性
  • Java_1_16

    2020-07-23 16:56:18
    双列集合顶层接口 HashMap TreeMap Map<K,V> 双列集合,键值对集合 特点 无序 键 不可重复;值,可重复 常见方法 方法名 说明 V put(K key,V value)(E e) 添加元素;或者修改 键的值,并...
  • Java中的集合

    2020-11-29 18:32:12
    Java中的集合分为单列集合和双列集合,单列集合有一个顶层接口:Collection。双列集合有一个顶层接口:Map
  • java基础(二) 集合

    2019-03-13 10:47:53
    集合 集合的顶层接口Iterator ...双列集合顶层接口Map Arraylist 底层实现是数组查询快 增删比较慢默认大小是10 扩容为1.5元素可重复 LinkedList 底层是链表查询慢增删快元素可重复 HashSet ...
  • 单列集合

    2019-06-17 22:14:13
    Collection集合(接口) 概述: 单列集合:顶层集合Collection接口 List集合元素有索引,元素存取有序,并且元素可以重复 ArrayList 最常见 LinkedList ...双列集合:顶层集合Map HashMap 最常见 ...
  • java集合

    2020-11-23 11:20:46
    所有双列集合顶层接口。用键值对的方式存储数据。MapCollection接口:所有单列集合的父接口, List接口是Collection的子接口,其常用实现类有ArrayList(数组)和LinkedList(链表)。 Set接口是Collection的子接口...
  • 单列集合的顶层接口List:有序,可重复集合ArrayList(重点)LinkedList通用方法List集合的排序Set:无序不可重复集合HashSet(重点)LinkedHashSetTreeSetMap接口:双列集合顶层接口HashMap(重点)构造方法常用...
  • 集合泛型

    2020-07-28 17:40:01
    双列集合:每个操作都是针对一对数据来进行的,一对数据作为一个单位 2、单列集合的体系: Collection 单列集合的顶层接口 List 有序的子接口 ArrayList 顺序存储,查询修改块 LinkedList 链式存储,增加...
  • 集合框架--Map集合

    2016-05-08 18:59:39
    所有,Map集合也称为双列集合,collection集合称为单列集合。 接口Map:key是键,value是值,其实map集合中存储的就是键值对,map集合中必须保证键的唯一性。 常用方法: 1、添加: value put(K key,V value):...
  • Map集合

    2020-12-02 23:50:23
    Map集合是双列集合顶层接口,用来存储简直对对象(一对数据),其中键是唯一的,值的数据可以重复。 因为Map是接口,所以通过创建子类来实现创建Map对象 创建方法:Map<K,V> map = new HashMap<>(); /...
  • Map集合学习笔记

    2015-12-01 18:38:57
    Map : 双列集合顶层接口 HashMap 键特点唯一无序。 TreeMap 键特点唯一且可实现排序。 a. 双列集合数据结构针对键有效 b. Map集合键唯一,值可重复 2、Map集合的功能概述 V put(K key, V value) -- ...
  • Map 双列集合顶层接口 Collections 工具类 项目:斗地主的制牌,洗牌,发牌 1.Map:(key,value) 2.map始发地址,目的地址 3.描述的就是一个数据到另一个数据的映射 4.Map的特点: key是唯一的,value不是...
  • 集合框架总结笔记一

    2018-09-21 14:57:00
    ​ 按照上面的图一一介绍 关于集合的概述 集合是一个能够存储对象并且可变长度的容器。在Java中,就此需求提供了一套相当完整的容器...单列集合顶层接口是Collection,它又有两个常用的子接口List和Set接口。...
  • 03Java集合

    2020-11-02 14:32:54
    在Java集合中,分为两大类集合派系Map集合(双列集合)和Collection集合(单列集合) 1. 单列集合 Collection接口是所有单列集合的顶层父类,所有的单列集合都直接或间接实现Collection接口,在Collection接口中,定义...
  • ——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-一、Map集合 ... Map : 双列集合顶层接口 HashMap 键特点唯一无序。 TreeMap 键特点唯一且可实现排序。 a. 双列集
  • Java SE集合Map

    2021-04-01 18:31:36
    ​ Map接口是双列集合顶层接口,下面是Map接口的定义 interface Map<K,V> K:键的类型;V:值的类型 ​ 存储的数据必须包含key和value。 ​ key和value在Map集合中是一一对应的关系。一个key对应一个value...

空空如也

空空如也

1 2 3 4 5 6
收藏数 106
精华内容 42
关键字:

双列集合顶层接口