Java的集合

一、Map集合
Map接口中键和值一一映射.可以通过键来获取值。
给定一个键和一个值,你可以将该值存储在一个Map对象.之后,你可以通过键来访问对应的值。
当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常.
当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。
当在不允许使用Null对象的Map中使用Null对象,会抛出一个NullPointerException异常。
当尝试修改一个只读的Map时,会抛出一个UnsupportedOperationException异常。
常用方法


TreeMap
TreeSet类似的是,TreeMap中也提供了一系列根据key顺序访问key-value对的方法:


二、Java集合工具类:Collections
Java提供了一个操作SetListMap等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象实现同步控制等方法。
1.排序操作


2.查找和替换操作


3.同步控制
Collections类中提供了多个synchronized...()方法,这些方法可以将指定集合包装成线程同步(线程安 全)的集合,从而可以解决多线程并发访问集合时的线程安全问题。
Java中常用的集合框架中的实现类ArrayListLinkedlist HashSetTreeSet HashMapTreeMap都是线程不安全的。如果有多个线程访问它们,而且有超过一个的线程试图修改它们,则存在线程安全的问题。Collections提供了多个类方法可以把它们包装成线程同步的集合。
三、Java集合总结
List,Set,Map是集合体系中最主要的三个接口。其中listset是继承自collection接口。Map也属于集合系统但是与collection接口不同
list是有序且允许元素重复,允许元素为null,ArrayListLinkedListVector是三个主要的实现类
(1)VectorArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形式进行存储。
(2)Vector线程安全的(同步)ArrayListLinkedList线程不安全的(不同步)
(3)ArrayListVector适合查找,不适合指定位置的插入、删除操作;LinkedList适合指定位置插入、删除操作,不适合查找。
(4)ArrayList在元素填满容器时会自动扩充容器大小的50%,而Vector则是100%,因此ArrayList更节省空间
set是无序,不允许元素重复;HashSetTreeSet是两个实现类
(1)HashSet 基于HashMap实现,HashSet中的数据是无序的,可以放入null,但只能放入一个 null,两者中的值都不能重复, 要求放入的对象必须实现HashCode()方法,放入的对象,是以hashcode码作为标识的
(2)TreeSet 是二差树实现的,Treeset中的数据是自动排好序的,不允许放入null
Comparator Comparable的区别Comparator定义在 类的外部, 此时我们的类的结构不需要有任何变化,从小到大:o1-o2 从大到 小:o2-o1 Comparable 定义在 类的内部,耦合性较强从小到大 this-o 从大到小:o-this

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值