黑马程序员---Map集合取出两种方式,HashMap,TreeMap,Collections工具类,数组和集合的互转,
2014-11-12 21:06
323 查看
1. 第十八天回顾
Set特性,无序,不重复,无下标
HashSet 保证唯一性,存储对象自己的hashCodeequals方法,底层哈希表,线程不安全,查询速度快
hashCode equals方法面试题,hashCode协定
TreeSet 会排序,依据是存储对象的自然顺序或者集合自己依靠比较器来排序
自然顺序,类实现Comparable,重写compareTo方法
实现类,实现Comparator,重写compare方法,TreeSet构造方法中,传递比较器对象
底层是二叉树,线程不安全集合
Map集合,存储两个对象的键值对,键唯一的,只能映射一个值
Map接口方法 put get containsKey containsValue keySet entrySet
2. 第十九天学习内容:Map集合取出两种方式,HashMap,TreeMap,LinkedHashMap,Hashtable, Properties。Collections工具类,数组和集合的互转,静态导入,可变参数。异常
3. Map集合第一种取出方法ketSet方法
代码少,简单易懂
Set<Key> keySet() 将Map集合中所有的键,存储到Set集合
迭代Set集合,获取到Map中所有的键
使用Map中的方法get()获取集合中的值
4. 内部接口
接口中,还有接口
interface XX{
interface YY{}
}
内部接口都是静态修饰,直接写外部接口名.内部接口
实现类,可以实现任意接口,实现哪个接口,重写哪个接口方法,没有必要实现外部,重写内部
Map集合第二种取出方法,内部接口原理
5. Map集合第二种取出方法entrySet方法实现
代码多,不好理解,开发不常用,面试常用
利用集合的键值对关系对象,获取,拥有结婚证,找结婚证上的两个人
键值对关系被Java进行了对象的封装,描述类,是个接口,是一个内部接口Entry,他是Map接口中的一个内部接口 Map.Entry.此接口的实现类对象,就是这个键值对关系对象。
entrySet()返回值是一个Set集合,这个Set集合,存储的是键值对的关系对象Map.Entry,
Map.Entry写泛型,集合中的键值对
Map.Entry接口中的方法:getKey()获取键 getValue()获取值
6. 增强for能不能遍历Map集合
for循环不能直接遍历Map集合,但是可以间接遍历
Map集合取出就是在Set帮助,for可以遍历Set集合的
7. HashMap类
基于哈希表的映射键值对,线程不安全,可以存储null值,null键,无序集合
要求最为键的对象,必须保证唯一性,对象重写hashCode和equals方法
8. LinkedHashMap
是HashMap的子类,基于链表的哈希表实现,有序的Map集合,线程不安全的,开始版本JDK1.4
9. Hashtable
底层数据结构也是哈希表,但是不允许存储null,线程安全,运行速度慢。开始版本JDK1.0、
但是没有集合框架以前,存储键值对,只能依靠Hashtable,被HashMap取代,郁郁而终了。
但是他有一个子类Properties,依然活跃在开发舞台,这个集合可以和IO流配合使用
10. TreeMap集合
对存储的键进行排序,需要对象的自然顺序,或者比较器,用法和实现代码,直接参考HashSet集合
线程不安全集合,运行速度快,底层实现红黑树,自然平衡算法二叉树
11. 集合的嵌套演示
数据的结构,数据存储到集合,并遍历,2中方式
传智播客:基础班,就业班
基础班有学生 : 001 张三 002 李四
就业班有学生 : 001 王武 002 赵柳
设计,一个集合传智播客,包含两个小集合,分别是基础班和就业班。
基础班和就业班的集合中,包括每个同学
一个Map中,存储2个小Map,2个小Map中,存储的是学生学号和姓名
Map<String,Map<String,Strng>>czbk 实现遍历,需要嵌套循环
12. Map集合的练习
计算一个字符串中,每个字符出现多少次
abcdabegef : 结果 字符a出现1次,字符b出现2次,字符c出现1次
a=1 b=2
eclipse程序调试功能 debug 断点调试
F6 一步向下 F5 进入方法体
13. Properties类
Hashtable的子类,也是一个线程安全的键值对的集合
这个类不同于其他集合,可以和IO流结合使用,实现数据的永久性存储
查看API发现这个集合没定义泛型,泛型已经被设定好了,键值对的数据类型都是字符串。完全适用于Map中的一切操作
特有方法setProperty(String key,String value)等同于就是Map中的put
getProperty(String value)传递键,返回对应的值,等同于Map中的get方法
以后可以用于配置文件。eclipse在workspace文件夹下,存储了文件,文件就是他的配置文件,窗口,字体,等等信息,写在配置文件中,都是键值对,重启eclipse的时候,读取配置文件中的信息
14. 集合工具类Collections
专门操作集合的工具类,方法全部静态
Collections类中的方法
l static void sort(List list)根据存储在集合的对象的自然顺序,对List集合排序
l static void sort(List list,Comparator com)根据比较器对List集合排序
l static Comparator reverseOrder()返回比较器,逆转对象的自然顺序
l static Comparator reverseOrder(Comparator c)传递比较器,返回比较器,返回的比较器逆转了传递的比较器
l static int binarySearch(List list, Object key)集合的折半查找,传递List集合必须有序,找到返回下标,找不到返回-插入点-1
l static void fill(List list,Object obj)填充集合
l static void swap(List list ,int x,int y)指定下标,对List集合中的对象换位置
l static void shuffle(List list)对List集合中的对象,随机换位置
l 将线程不安全集合变成线程安全集合 synchronized开头的方法
15. 集合数组的互转
数组转成集合 Arrays类方法isList , 传递数组,返回集合
数组转成集合后,改变集合长度不能做,如果做了,出现不支持的操作异常
集合转数组Collection中方法 toArray() 将集合转成数组,传递数组,返回数组
16. 静态导入
JDK1.5的新特性,简化书写
import static ...静态成员或者是静态方法
17. 可变参数
JDK1.5的新特性
定义方法啊,计算两个正数和,返回结果,计算的整数的个数在无限的增长
采用可变参数处理
格式
修饰符 返回值类型 方法名 (数据类型...变量){}
可变参数的使用条件:当定义一个方法时候,参数的数据类型已知,但是参数的个数不同,可变参数就是一个数组
可变参数的使用注意事项:
l 一个方法中,只能定义1个可变参数
l 如果方法中有多个参数,可变参数只能写咋参数列表的最后
18. 异常的概述
异常:程序的运行时候出现的不正常现象
异常的产生过程和处理方式
异常产生,是JVM创建的一个对象,抛给调用者,如果调用者不处理,继续抛出,直到JVM接收到异常后,终止程序。
异常也是对象,既然是对象,对象的描述类,ArithmeticException类是用来描述数学中的算术问题的类
NullPointerException,描述空指针异常的类
ArrayIndexOutOfBounds 描述数组越界异常类
19. 异常的继承体系
Throwable,类是所有异常和错误的父类
|-- Error 错误
|-- Exception 异常
错误:程序出现了严重的问题,不修改代码,根本不能运行,人得了非典,艾滋,癌
异常:程序出现了比较轻的问题,处理掉之后,继续运行,人得了阑尾炎,感冒
Exception类是所有异常的父类
|-- 非RuntimeException
|-- RuntimeException
Throwable中的方法:
l String toString()重写Object类的方法,异常信息的详细描述?
l String getMessage() 返回异常信息的简短描述
l void printStackTrace() 异常信息输出到控制台
20. 异常的第一种处理方式 try catch处理
格式
try{
检测的代码
有可能发生异常的代码
}catch(异常类 变量){
异常的处理方式(循环,判断,调方法)
有catch,就可以称为异常被处理了
}
21. 异常的第二种处理方式,抛出异常
throw 手动抛出异常,后面写的是new 异常对象
throws 方法声明抛出异常,后面写的是异常类
throw 写在方法中,throws写在方法的声明上
22. finally代码块
finally可以跟随try出现,也可以跟随try...catch出现
finally代码块中的程序,必须要运行
finally实际的开发意义,释放资源
23.
Set特性,无序,不重复,无下标
HashSet 保证唯一性,存储对象自己的hashCodeequals方法,底层哈希表,线程不安全,查询速度快
hashCode equals方法面试题,hashCode协定
TreeSet 会排序,依据是存储对象的自然顺序或者集合自己依靠比较器来排序
自然顺序,类实现Comparable,重写compareTo方法
实现类,实现Comparator,重写compare方法,TreeSet构造方法中,传递比较器对象
底层是二叉树,线程不安全集合
Map集合,存储两个对象的键值对,键唯一的,只能映射一个值
Map接口方法 put get containsKey containsValue keySet entrySet
2. 第十九天学习内容:Map集合取出两种方式,HashMap,TreeMap,LinkedHashMap,Hashtable, Properties。Collections工具类,数组和集合的互转,静态导入,可变参数。异常
3. Map集合第一种取出方法ketSet方法
代码少,简单易懂
Set<Key> keySet() 将Map集合中所有的键,存储到Set集合
迭代Set集合,获取到Map中所有的键
使用Map中的方法get()获取集合中的值
4. 内部接口
接口中,还有接口
interface XX{
interface YY{}
}
内部接口都是静态修饰,直接写外部接口名.内部接口
实现类,可以实现任意接口,实现哪个接口,重写哪个接口方法,没有必要实现外部,重写内部
Map集合第二种取出方法,内部接口原理
5. Map集合第二种取出方法entrySet方法实现
代码多,不好理解,开发不常用,面试常用
利用集合的键值对关系对象,获取,拥有结婚证,找结婚证上的两个人
键值对关系被Java进行了对象的封装,描述类,是个接口,是一个内部接口Entry,他是Map接口中的一个内部接口 Map.Entry.此接口的实现类对象,就是这个键值对关系对象。
entrySet()返回值是一个Set集合,这个Set集合,存储的是键值对的关系对象Map.Entry,
Map.Entry写泛型,集合中的键值对
Map.Entry接口中的方法:getKey()获取键 getValue()获取值
6. 增强for能不能遍历Map集合
for循环不能直接遍历Map集合,但是可以间接遍历
Map集合取出就是在Set帮助,for可以遍历Set集合的
7. HashMap类
基于哈希表的映射键值对,线程不安全,可以存储null值,null键,无序集合
要求最为键的对象,必须保证唯一性,对象重写hashCode和equals方法
8. LinkedHashMap
是HashMap的子类,基于链表的哈希表实现,有序的Map集合,线程不安全的,开始版本JDK1.4
9. Hashtable
底层数据结构也是哈希表,但是不允许存储null,线程安全,运行速度慢。开始版本JDK1.0、
但是没有集合框架以前,存储键值对,只能依靠Hashtable,被HashMap取代,郁郁而终了。
但是他有一个子类Properties,依然活跃在开发舞台,这个集合可以和IO流配合使用
10. TreeMap集合
对存储的键进行排序,需要对象的自然顺序,或者比较器,用法和实现代码,直接参考HashSet集合
线程不安全集合,运行速度快,底层实现红黑树,自然平衡算法二叉树
11. 集合的嵌套演示
数据的结构,数据存储到集合,并遍历,2中方式
传智播客:基础班,就业班
基础班有学生 : 001 张三 002 李四
就业班有学生 : 001 王武 002 赵柳
设计,一个集合传智播客,包含两个小集合,分别是基础班和就业班。
基础班和就业班的集合中,包括每个同学
一个Map中,存储2个小Map,2个小Map中,存储的是学生学号和姓名
Map<String,Map<String,Strng>>czbk 实现遍历,需要嵌套循环
12. Map集合的练习
计算一个字符串中,每个字符出现多少次
abcdabegef : 结果 字符a出现1次,字符b出现2次,字符c出现1次
a=1 b=2
eclipse程序调试功能 debug 断点调试
F6 一步向下 F5 进入方法体
13. Properties类
Hashtable的子类,也是一个线程安全的键值对的集合
这个类不同于其他集合,可以和IO流结合使用,实现数据的永久性存储
查看API发现这个集合没定义泛型,泛型已经被设定好了,键值对的数据类型都是字符串。完全适用于Map中的一切操作
特有方法setProperty(String key,String value)等同于就是Map中的put
getProperty(String value)传递键,返回对应的值,等同于Map中的get方法
以后可以用于配置文件。eclipse在workspace文件夹下,存储了文件,文件就是他的配置文件,窗口,字体,等等信息,写在配置文件中,都是键值对,重启eclipse的时候,读取配置文件中的信息
14. 集合工具类Collections
专门操作集合的工具类,方法全部静态
Collections类中的方法
l static void sort(List list)根据存储在集合的对象的自然顺序,对List集合排序
l static void sort(List list,Comparator com)根据比较器对List集合排序
l static Comparator reverseOrder()返回比较器,逆转对象的自然顺序
l static Comparator reverseOrder(Comparator c)传递比较器,返回比较器,返回的比较器逆转了传递的比较器
l static int binarySearch(List list, Object key)集合的折半查找,传递List集合必须有序,找到返回下标,找不到返回-插入点-1
l static void fill(List list,Object obj)填充集合
l static void swap(List list ,int x,int y)指定下标,对List集合中的对象换位置
l static void shuffle(List list)对List集合中的对象,随机换位置
l 将线程不安全集合变成线程安全集合 synchronized开头的方法
15. 集合数组的互转
数组转成集合 Arrays类方法isList , 传递数组,返回集合
数组转成集合后,改变集合长度不能做,如果做了,出现不支持的操作异常
集合转数组Collection中方法 toArray() 将集合转成数组,传递数组,返回数组
16. 静态导入
JDK1.5的新特性,简化书写
import static ...静态成员或者是静态方法
17. 可变参数
JDK1.5的新特性
定义方法啊,计算两个正数和,返回结果,计算的整数的个数在无限的增长
采用可变参数处理
格式
修饰符 返回值类型 方法名 (数据类型...变量){}
可变参数的使用条件:当定义一个方法时候,参数的数据类型已知,但是参数的个数不同,可变参数就是一个数组
可变参数的使用注意事项:
l 一个方法中,只能定义1个可变参数
l 如果方法中有多个参数,可变参数只能写咋参数列表的最后
18. 异常的概述
异常:程序的运行时候出现的不正常现象
异常的产生过程和处理方式
异常产生,是JVM创建的一个对象,抛给调用者,如果调用者不处理,继续抛出,直到JVM接收到异常后,终止程序。
异常也是对象,既然是对象,对象的描述类,ArithmeticException类是用来描述数学中的算术问题的类
NullPointerException,描述空指针异常的类
ArrayIndexOutOfBounds 描述数组越界异常类
19. 异常的继承体系
Throwable,类是所有异常和错误的父类
|-- Error 错误
|-- Exception 异常
错误:程序出现了严重的问题,不修改代码,根本不能运行,人得了非典,艾滋,癌
异常:程序出现了比较轻的问题,处理掉之后,继续运行,人得了阑尾炎,感冒
Exception类是所有异常的父类
|-- 非RuntimeException
|-- RuntimeException
Throwable中的方法:
l String toString()重写Object类的方法,异常信息的详细描述?
l String getMessage() 返回异常信息的简短描述
l void printStackTrace() 异常信息输出到控制台
20. 异常的第一种处理方式 try catch处理
格式
try{
检测的代码
有可能发生异常的代码
}catch(异常类 变量){
异常的处理方式(循环,判断,调方法)
有catch,就可以称为异常被处理了
}
21. 异常的第二种处理方式,抛出异常
throw 手动抛出异常,后面写的是new 异常对象
throws 方法声明抛出异常,后面写的是异常类
throw 写在方法中,throws写在方法的声明上
22. finally代码块
finally可以跟随try出现,也可以跟随try...catch出现
finally代码块中的程序,必须要运行
finally实际的开发意义,释放资源
23.
相关文章推荐
- 【java编程】Map集合之HashMap--KeySet和EntrySet的两种取出方式
- 黑马程序员_学习笔记:10) 集合框架2:Set(HashSet、TreeSet)、Map(Hashtable、HashMap、TreeMap)、Collections、Arrays
- 18 API-集合(Map(Map_HashMap_TreeMap),Collections工具类,集合(C+M)大总结)
- 黑马程序员_HashMap集合的两种取出方式
- Java基础 - 双列集合Map,HashMap,LinkedHashMap,LinkedMap,TreeMap,Collections工具类
- 黑马程序员_集合HashMap练习:获取Map集合元素的两种方式:keySet()和entrySet()方法
- 【java编程】Map集合之hashMap两种取出方式练习
- Map(接口简介、HashMap集合、TreeMap集合、Properties、泛型、Collections工具类、Arrays工具类)
- 黑马程序员_集合3(HashMap,HashTable,TreeMap,Arrays,Collections,高级for,可变参数,静态导入,Date,Calendar,Math,System等)
- java中map集合的两种取出方式keySet和entrySet
- 黑马程序员—java基础学习--Map集合、Collections,Arrays工具类
- Map集合的两种取出方式
- 黑马程序员_Java第17天知识总结_集合框架的工具类_Collections_Arrays_将数组变成list集合_集合变数组_高级for循环_可变参数
- TreeMap集合中的两种取出元素方式
- 黑马程序员——Map集合类与集合数组工具类及JDK1.5后的新特性
- 黑马程序员——JAVA基础——集合---概述、Collection中共性方法、List、Map、工具类Collections和Arrays
- 黑马程序员_集合3(HashMap,HashTable,TreeMap,Arrays,Collections等)
- 黑马程序员 java 基础 毕向东 面向对象 集合框架 Map HashTable HashMap TreeMap
- 黑马程序员:Map集合:Hashtable、HashMap、TreeMap介绍
- 黑马程序员——Map集合:HashTable,HashMap,TreeMap