java集合类,collection,list,set,map
2015-08-31 17:18
531 查看
list数组集合,set不允许有相同的值存入,map是键值对(key--value)。
list:
ArrayList和LinkedList的区别:
ArrayList:自动增长的数组,查询效率比较高,但是添加和删除效率比较低,如果一开始有大量的数据确定加入,而不是动态的添加,可以用ensureCapacity方法加入一下,这样效率可以高一点;
LinkedList:是用双向循环链表实现的,查询效率低,但添加和删除效率高;
都是线程不安全
ArrayList和Vector的区别:
ArrayList:线程不安全,但相应的效率会高一点;
Vector:线程安全,同样相应的效率会低一点;
他们两个一旦数量超过原先规定的大小,动态增加的时候,不是只增加一个存储单元,而是一定量
set:
set中怎么判断两个值是否相同? Object中equals和hashcode基本是所有类都要继承重写的方法,在set比较两个值的时候会用到;
首先会用hashcode()判断两个值是否相同,如果相同则调用equals()方法比较,如果也相同则代表两个值相同;(两个对象如果hashcode一样,.equals不一定一样;.equals一样,hashcode一定一样)
而Treeset不会用到这种方法
Treeset用的是comparator接口,而且Treeset中元素是排好序的,这个特点也是得益于comparator接口,comparatorTo()方法返回整型,如果当前对象大于参数对象就返回正数,等于就返回0,小于就返回负值
map:
map中为key--value,遍历里的话:
先调用keyset()得到key的set集合;
遍历得到的key的集合;
根据key值得到value值;
hashmap和hashtable的区别:
hashmap允许key为空,线程不安全,但效率较高;
hashtable不允许key为空,线程安全,效率较低,现在使用比较少;
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- Python中map()函数浅析
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树