java高级,
java高级,
1、单列集合和双列集合
——————————————————单列集合
Collection(最底层的父类)
List 有序,可重复
ArrayList 查询速度快,增删慢;底层用Object类的数组实现
LinkedList 查询速度块,增删块;
Vector 与ArrayList相同,操作效率低,线程安全(多个可以同时访问)
Set 无序,不可重复
HashSet 底层是hash表支持的,存取速度快
TreeSet 底层是二叉树有序结构,无序数据必须实现Comparable(判断数值)接口,重复(0),不允许添加
——————————————————双列集合
Map key不允许重复,value允许重复
HashMap 底层是hash表实现的,用equals方法进行判断(判断是否是同一对象)
TreeMap底层是二叉树的有序结构,对元素排序存储。无序数据必须实现Comparable接口,或者自定义比较器 Comparator。
HashTable 线程安全,操作效率低。不允许存入null。
2、Map
不能直接取出元素,需要转成set,通过迭代获取元素。
Map常用方法:
put;clear;
map的两种取出方式
Set<String> ks = map.keySet(); //Set有迭代器,可以将map存入set迭代取出
Iterator<String> it = ks.interator();
——————————————————————————————————
Set<Map.Entry<String,String>> ks = map.entrySet(); //Set有迭代器,可以将map存入set迭代取出
Iterator<Map.Entry<String,String>> it = ks.interator(); //将map存入entrySet迭代取出。Entry时Map中的一个内部 接口
3、集合框架中的工具类
colletctions常用方法
sort //根据元素的自然顺序进行升序排序,元素实现Comparable接口。需要改变排序规则时,比如按字符串长度进 行比较,需要自定义比较器Comparator
binarySearch//二分法搜索,二分法使用前提是必须先进行sort。搜索不到时返回-插入点-1
4、Arrays用于操数组的静态工具类
Arrays.toString(arr)
5、将数组转换为List的好处:可以使用List的相关方法操作数组。但是不能进行增删操作,因为数组的长度是固定的。
强行增删会报UnsupportedOperationException.转换时如果数组中的元素为引用类型,则List中的元素为数组中的 元素;如果是基本类型,则将数组对象存为List元素。
Arrays.asList(arr)
6、面试题:
传统for循环和高级for区别:
高级for必须有遍历的目标,且目标只能是数组或集合;传统for可以定义下标,便于使用。map也可以使用高级for 进行遍历
7、可变参试,隐式将参数封装为数组。必须位于参数列表最后
8、静态导入:
类重名,指定包名-全限定名
方法重名,指定所属对象或类
9、面试题:
ArrayList和Vector的区别:
底层都是使用了Object类的数组实现的;
ArrayList是线程不同步的操作效率高,Vector是线程同步的操作效率低;
ArrayList是jdk1.2出来的,Vector是jdk1.0出来的
相关文章
- 暂无相关文章
用户点评