Map集合 ,Map集合的遍历

9 篇文章 0 订阅

Map

意义:用来保存键值对的数据。

特点:创建一个键到值的对象,一个键对应一个对象,在集合中不能存在相同的键,但是可以存在相同的值,如果出现了相同的键,后面一条赋值语句会覆盖前面一条赋值语句的值。Map集合中的数据结构都是由键值决定的。

格式 Map<K,V>  

其中K是对象的键,V是对象的值。

Map接口和Collection接口的区别:

Map是双列的,Collection是单列的
Map的键唯一,Collection的子体系Set是唯一的
Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构是针对元素有效

Map集合的常用功能:

(1)添加功能:V put(K key,V value)(v就是键映射的值的类型)使用这个方法时,如果键是第一次存储,就直接存储元素,                            返回null,但是如果键不是第一次存储,就用现在的值替换以前的值,返回以前的值。

import java.util.HashMap;
import java.util.Set;

public class Sec {
    public static void main(String[] args) {
        HashMap<String,String> hm=new HashMap<>();
        hm.put("YU","12");
        hm.put("xue","22");
        hm.put("YIng","21");
        System.out.println(hm.toString());
}
}


(2)删除功能:void clear():移除所有的键值对元素
  V remove(Object key):根据键删除键值对元素,并把被删除的值返回

       

import java.util.HashMap;

public class Sec {
    public static void main(String[] args) {
        HashMap<String,String> hm=new HashMap<>();
        hm.put("YU","12");
        hm.put("xue","22");
        hm.put("YIng","21");
        System.out.println(hm.toString());

       String st= hm.remove("YU");
        System.out.println(st);
        hm.clear();
        System.out.println(hm.toString());
        }
}
结果是:

(3)判断功能:boolean containsKey(Object key):判断集合是否包含指定的键
        boolean containsValue(Object value):判断集合是否包含指定的值
       boolean isEmpty():判断集合是否为空

(4)获取功能:Set<Map.Entry<K,V>> entrySet(): 返回一个键值对的Set集合
                           V get(Object key):根据键获取值
                          Set<K> keySet():获取集合中所有键的集合
                         Collection<V> values():获取集合中所有值的集合

我们可以通过获取方法来对Map集合进行遍历

遍历有两种方法:

a、通过键找值:

获取所有键的集合,然后遍历键的集合,获取到每一个键,接着根据键找值

package Jan_th;

import java.util.HashMap;
import java.util.Set;

public class Test {
   public static void main(String[] args) {
	HashMap<Integer, String> hm=new HashMap<>();
	hm.put(1, "YU");
	hm.put(2,"xue");
	hm.put(3, "ying");
	Set<Integer> keys=hm.keySet();
	for(Integer key:keys) {
		 String value=hm.get(key);
		 System.out.println(key+"-------"+value);
	}
}
}


 

b、直接获取键值对对象:

获取所有的键值对对象的集合,遍历键值对对象的集合,获取到值。

	Set<Map.Entry<Integer, String>> entires=hm.entrySet();
	for(Map.Entry<Integer, String> en :entires) {
		System.out.println(en.getKey()+"++++++++"+en.getValue());
	}


(5)长度功能:int size():返回集合中的键值对的对数。

在Map接口下,最主要的实现类有:HashMap,TreeMap和LinkedHashMap.

HashMap:

包:

特点:元素唯一

LinkedHashMap

特点:是由哈希表和链表列表实现,具有可预知的迭代型,里面存储的元素有序且唯一。

         唯一是由哈希表实现,有序是由链表实现。继承Map的所有特性。

为了做比较,我们看一下TreeMap

对于TreeMap:

由红黑树和二叉树实现,键排序且唯一

                        排序分为自然排序和比较器排序,线程不安全但是效率高。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值