1. Map集合和collection结合的区别
1》Collection一次存一个元素;Map一次存一对元素;
2》Collection是单列集合;Map是双列集合;
3》Map中的存储的为键值对,键与值之间存在着映射关系 。
2. 数组和集合的区别
1》数组长度固定;集合长度可变;
2》数组可以存储基本数据类型和存储引用数据类型;集合只能存储引用数据类型;
3. map下常用的集合<HashMap,TreeMap>
HashMap:底层基于数组加链表,键不可以重复,值可以重复,重写了equals和hashcode方法;
原因:原因同HashSet。
Treemap:键可以排序,不可以重复,原理同TreeSet。
4.迭代器(iterator和Enumeration和ListIterator)
Iterator是Enumeration的升级版;
vector和hashtable用的迭代器是Enumeration;
hashmap,arraylist等的迭代器用是Iterator。
ListIterator是list集合特有的迭代器,可以在遍历的过程中对元素的增、删、改、查,其他两个不能;
用法:
Hashnext同hasMoreElements;
Next同nextElement;
iterator较Enumeration多了remove,移除元素。
5. Hashtable同hashmap的区别;
Hashtable:键和值不能为空,线程安全,效率低,默认迭代器为Enumeration,父类为 Dictionary;
Hashmap:键可以一个为空,值可以多个为空,线程不安全,效率高,默认迭代器为iterator,父类为abstractmap;
Hashmap是hashtable的升级版,其他用法类似。
6. Properties
1》父类为hashtable
2》键值对可以通过put及setProperty输入, setProperty有返回值;
3》值的获取可以通过get及getProperty(String key) 和getProperty(String key, String defaultValue),其中getProperty (String key, String defaultValue)在没有找到键的情况下可以返回指定返回值,String defaultValue为指定返回值;
4》list(PrintStream out):可以把流中的键值读取到Properties集合中,system.out的返回值是PrintStream返回类型;可以输出到控制台(可以把文本路径写成Filedescriptor.out),也输出到文件中,键值对格式为123=123-456,123为键,456为值,也可以把Properties集合的键值对写入相对应的流,外加注释的形式。
5》Properties集合的格式可以保存为Properties格式及xml格式
6》Properties常用方法
getProperty(String key, String defaultValue)获取值,没有按默认值返回
setProperty(String key, String value)输入键值对有返回值
store(Writer writer, String comments)以Properties格式将键值对写入输出流,String comments注释文字
load(Reader reader)从文本中读取键值对
7. Weakhashmap
假如键为弱引用,在垃圾回收机制下会被回收,用法和hashmap差不多。
8. IdentityHashMap
根据地址是否相同去重,用法和hashmap差不多。
9. Enummap
键必须是枚举值,用法和hashmap差不多。
10. Collections常用方法
Sort()按照自然顺序排序
sort(List<T> list, Comparator<? super T> c)根据指定比较强排序
synchronized 保证线程安全
Empty 空容器,可以避免空指针异常
Singleton 只包含一个元素的容器
Unmodifiable 不可变的容器
reverse(List<?> list) 反转顺序
11.collections和collection的区别
1》 collections为工具类,collection为单列集合
2》 collections为collection中的list提供了大量的排序方法
3》 collections为collection提供了同步机制,保证线程安全等