Map集合

一、Map集合
(1)、Map集合常见的操作方式
1.添加:put(K key,V value):如果添加时出现相同的键,那么新的值会替换掉旧的值,并且put方法会返回被覆盖的值。(返回对应的键原来的值)。
putAll(Map<? extends K,? extends V> m) :从指定映射中将所有映射关系复制到此映射中(可选操作)。
2.删除:clear():从此映射中移除所有映射关系(可选操作)。
remove(Objcet key):如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
3.判断:containsKey(Object key):如果此映射包含指定键的映射关系,则返回 true。
containsValue(Object value) :如果此映射将一个或多个键映射到指定值,则返回 true。
equals(Object o):比较指定的对象与此映射是否相等。
isEmpty():如果此映射未包含键-值映射关系,则返回 true。
4.获取:get(Object key):返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回
size():返回此映射中的键值关系数。
entrySet():返回此映射中包含的映射关系的 Set 视图。
keySet():返回此映射中包含的键的 Set 视图。
values():返回此映射中包含的值的 Collection 视图

(2)Hashtable,HashMap,TreeMap的区别
Hashtable:任何非 null 对象都可以用作key和value值。(该集合线程同步)
HashMap:允许使用 null 作为key和value值(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
TreeMap:底层是二叉树结构,线程不同步,且具有顺序(对键进行了排序)。
(3)遍历Map集合的几种方式

       Map<String,String> map = new HashMap<String,String>(){};

       map.put("a", "A");
       map.put("b", "B");
       map.put("c", "C");

        //第一种方式
        Set<String> keySet = map.keySet();
        Iterator it = keySet.iterator();
        while(it.hasNext()){
                String key = (String)it.next();
                String value = map.get(key);
                System.out.println(key+"------"+value);
        }
        //第二种方式
        Set<Entry<String,String>> set = map.entrySet();
        Iterator it1 = set.iterator();
        while(it1.hasNext()){
                Entry<String,String> entry = (Entry<String,String>)it1.next();
                String key = entry.getKey();
                String value = entry.getValue();
                System.out.println(key+"------"+value);
        }
        //第三种方式
        for(Entry<String,String> entry : map.entrySet()){
                        System.out.println((String)entry.getKey() + "------"
                                        + (String)entry.getValue());
    }

注意map.entrySet()取得是映射关系。

二、Collections类
(1)sort(List list)根据元素的自然顺序 对指定列表按升序进行排序。
(2)max()根据元素的自然顺序,返回给定 collection 的最大元素。
(3)binarySearch 如果搜索键包含在列表中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入列表的那一点.
(4)fill(list,T obj)使用指定元素替换指定列表中的所有元素。
(5)replaceAll(List list, T oldVal, T newVal)
使用另一个值替换列表中出现的所有某一指定值。
(6)reverse(list) 反转指定列表中元素的顺序。
(7)reverseOrder()返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
(8)reverseOrder(Comparator cmp) 返回一个比较器,它强行逆转指定比较器的顺序。
三、Arrays类 :用于操作数组的工具类。
(1)asList(数组引用):将数组变成list集合。可以使用集合中的方法来操作数组中的元素。注意a、:将数组变成list,不可以使用list的增删方法。 b、如果数组中的元素都是对象,那么变成集合后,数组中的元素直接转成list集合中的元素。如果数组中的元素为基本数据类型,那么数组将作为集合中的元素。
将集合变成数组
list.toArray();
为什么要讲集合变数组:为了限制对元素的操作
注意:a、当指定类型的数组长度大于集合长度时,该方法重新开辟一块内存,用来装数组。b、当指定类型的数组长度小于集合长度时,直接使用传递进来的数组。
(2)fill():用于初始化数组。
四、可变参数
其实就是一种数组作为参数的简写形式,但不必每次手动创建数组对象,只要将要操作的元素作为参数传递,隐试将传进来的参数作为数组。
例如

package CollectionDemo;

public class Demo6 {
    public static void main(String[] args) {
        int[] a = { 1, 2, 3, 4 };
        show(1, 2, 3);
        show(1, 2, 3, 4);
    }
    public static void show(int... arr) {
        System.out.println(arr.length);
    }

}

输出结果

3
4

注意:可变参数一定要定义在参数列表的最后。

五,静态导入
import static java.util.System.*;
可以直接使用 out.ptintln();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值