集合
来源:互联网 发布:nero刻录软件免费版 编辑:程序博客网 时间:2024/05/16 17:42
本章目标
1).掌握Collections类
2).掌握Comparable接口
3).掌握Map接口及主要实现类HashMap的使用
1、Collections类-工具类
sort(): 根据元素的自然顺序 对指定列表按升序进行排序。
reverse() : 反转指定列表中元素的顺序。,先用sort()升序,再用reverse()表示为降序排列
max():根据元素的自然顺序,返回给定 collection 的最大元素。
min():根据元素的自然顺序 返回给定 collection 的最小元素。
面试题:Collections和Collection的区别?
(1) Collections 是一个包装类,它包含有各种有关集合操作的静态多态方法, 此类不能实例化。
(2) Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,Collection接口在java类库中有很多具体的实现。
它的意义是为各种具体的集合提供最大化的统一操作方式。
2、Comparable接口-对象排序比较器
List排序时:
1、Collections.sort(list);升序
2、 Collections.reverse(list);降序
3、类还要实现Comparable接口,重写compareTo方法
Set排序时:
1、用TreeSet类
2、类还要实现Comparable接口,重写compareTo方法
3、Map接口,具有键--值对。
1).HashMap类
是Map接口的实现,可为基本操作(get 和 put)提供稳定的性能
2).Map集合的使用
(1).创建Map集合对象
Map<键的类型,集合中元素的类型(通常是类类型)> map = new HashMap<键的类型,集合中元素的类型>();
(2).往集合中添加/修改数据(使用put方法)
map.put(键的值,元素的值);
(3).获取集合大小(使用size方法)
map.size();
(4).删除数据(使用remove方法)
map.remove(删除元素的键值);
(5).获取数据(使用get方法
首先创建一个对象来接受获取的值:
类类型 对象名 = map.get(所要获取元素的键值);
(6).遍历集合所有数据
1)、使用Iterator遍历:
Iterator<Integer> it = map.keySet().iterator();
while(it.hasNext())
{
Integer i = it.next();
System.out.println(i+","+map.get(i));
}
2)、 使用keySet()遍历:
首先要将map集合转为Set或List集合 即
Set<Integer> sets = map.keySet();
for(Integer i:sets)
{
System.out.println(i+","+map.get(i));
}
3)、使用entrySet遍历(难,不需要掌握)
//entrySet遍历
Set<Entry<Integer, Student>> st = map.entrySet();
for(Map.Entry<Integer, Student> en:st)
{
System.out.println(en.getKey()+","+en.getValue());
}
HashMap和HashTable的异同
相同:(1)都是由数组实现
(2)key都是通过hash算法
(3)HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口
不同点:
(1)HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
(2)Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
(3)最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
(4)HashMap线程不安全,效率高,HashTable线程安全,效率低
1).掌握Collections类
2).掌握Comparable接口
3).掌握Map接口及主要实现类HashMap的使用
1、Collections类-工具类
sort(): 根据元素的自然顺序 对指定列表按升序进行排序。
reverse() : 反转指定列表中元素的顺序。,先用sort()升序,再用reverse()表示为降序排列
max():根据元素的自然顺序,返回给定 collection 的最大元素。
min():根据元素的自然顺序 返回给定 collection 的最小元素。
面试题:Collections和Collection的区别?
(1) Collections 是一个包装类,它包含有各种有关集合操作的静态多态方法, 此类不能实例化。
(2) Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,Collection接口在java类库中有很多具体的实现。
它的意义是为各种具体的集合提供最大化的统一操作方式。
2、Comparable接口-对象排序比较器
List排序时:
1、Collections.sort(list);升序
2、 Collections.reverse(list);降序
3、类还要实现Comparable接口,重写compareTo方法
Set排序时:
1、用TreeSet类
2、类还要实现Comparable接口,重写compareTo方法
3、Map接口,具有键--值对。
1).HashMap类
是Map接口的实现,可为基本操作(get 和 put)提供稳定的性能
2).Map集合的使用
(1).创建Map集合对象
Map<键的类型,集合中元素的类型(通常是类类型)> map = new HashMap<键的类型,集合中元素的类型>();
(2).往集合中添加/修改数据(使用put方法)
map.put(键的值,元素的值);
(3).获取集合大小(使用size方法)
map.size();
(4).删除数据(使用remove方法)
map.remove(删除元素的键值);
(5).获取数据(使用get方法
首先创建一个对象来接受获取的值:
类类型 对象名 = map.get(所要获取元素的键值);
(6).遍历集合所有数据
1)、使用Iterator遍历:
Iterator<Integer> it = map.keySet().iterator();
while(it.hasNext())
{
Integer i = it.next();
System.out.println(i+","+map.get(i));
}
2)、 使用keySet()遍历:
首先要将map集合转为Set或List集合 即
Set<Integer> sets = map.keySet();
for(Integer i:sets)
{
System.out.println(i+","+map.get(i));
}
3)、使用entrySet遍历(难,不需要掌握)
//entrySet遍历
Set<Entry<Integer, Student>> st = map.entrySet();
for(Map.Entry<Integer, Student> en:st)
{
System.out.println(en.getKey()+","+en.getValue());
}
HashMap和HashTable的异同
相同:(1)都是由数组实现
(2)key都是通过hash算法
(3)HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口
不同点:
(1)HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
(2)Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
(3)最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
(4)HashMap线程不安全,效率高,HashTable线程安全,效率低
阅读全文
0 0
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 41. OP-TEE中secure stroage------安全文件中数据的加密操作
- 一段感悟很深的话
- Hadoop入门案例(七)之TOP K
- c++学习 动态链接库的使用
- Linux常见的一些简单命令操作及简单小问题整理
- 集合
- Web前端学习(4)_BOM编程_事件编程
- 在jmeter中如何一套脚本可以对应不同的环境
- leetcode8. String to Integer (atoi)
- HSSF,XSSF和SXSSF的区别
- 题目五 喷水装置(二)
- 洛谷Oj-合唱队形-最长上升子序列+最长下降子序列
- 消息总线能否实现消息必达?(58沈剑)
- 集合(二)