黑马程序员——关于集合(下)

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------

 

在学习Map接口之前必须先了解泛型,泛型是用于解决安全问题,是一个类型安全机制。通过<>来定义要操作的引用数据类型,在集合框架中定义泛型用来确定数据类型,使得只有在传入数据类型正确的情况下,编译才可以通过。

 

Map接口: 存放键值映射的对象,其中键要保证唯一。主要包含一下三种:

1、Hashtable类:底层是哈希表数据结构,不允许使用 null 值和null 键。该集合是线程同步的,效率较低。

2、HashMap类:底层也是哈希表数据结构,允许使用 null 值和null 键,此类不保证映射的顺序,特别是它不保证该顺序恒久不变。该集合是线程不同步的,效率较高。

3、TreeMap类:底层是二叉树数据结构。该集合是线程不同步的,可以用于给Map集合中的键进行排序。

对于以上几个Map接口的子类,有一些共性方法:

1、添加:

put(Kkey, V value):添加时如果前后是相同的键,那么后添加的值会覆盖该键对应的原值。并且返回被覆盖的值。

putAll(Map<? extends K,? extendsV> m)

    2、删除。

clear() :清除所有键值对。

remove(Object key):删除指定键对应的键值对。

    3、判断:返回的都是boolean

containsValue(Object value)

containsKey(Object key)

isEmpty()

   4、获取。

get(Object key) :获取对应键的值。可以通过这个方法的返回值来判断一个键是否存在,null为不存在。

size() Map集合中键值对数量。

values():获取Map集合中所有的值。

keySet() :将Map中所有的键存入set集合。因为set具备迭代器,所以可以用迭代方法取出所有的键,再根据get方法获取每一个键对应的值。

Set<Map.Entry<k,v>> entrySet():将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是Map.Entry

 

另外,集合框架中还提供了两个工具类 Collections类和Arrays类。

工具类中提供的一般都是静态方法,可以直接通过类名.方法名调用。

Collections类中有以下方法:

sort(List<T>list):自然排序

sort(List<T>list,Comparator<? Super T>c):比较器排序

reverse():反转

reverseOrder():返回一个比较器,强行逆转自然顺序

reverseOrder(Comparator<T> comp):强行逆转指定比较器

replaceAll():将所有为旧值的元素都用指定的新值替代

 

Arrays类是用于操作数组的工具类。

asList:将数组变成list集合,如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素;如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。

        toArray:将集合变成数组,这是Collection接口中的方法。

 

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!----------------------

 详细请查看:http://edu.csdn.net

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值