map集合:该集合存储键值对,一对一对的往里存,要保证键的唯一性
1、添加
put(K key,V value)
putAll(Map<? extends K,?extends V> m)
2、删除
clear()
remove(Object key)
3、判断
containsValue(Object value)
containsKey(Object key)
isEmpty()
4、获取
get(Object key)
size()
values();
entrySet()
keySet()
Map
|--Hashtable:底层是哈希表结构,不可以存入null键,null值,该集合是线程同步的
|--HashMap:底层是哈希表数据结构,允许使用null键,null值该集合是不同步的,效率高
|--TreeMap底层数据结构是二叉树,线程不同步,可以用于给map集合中的键进行排序
和set很像
其实set底层就是使用了map集合
map集合的两种取出方式:
1、Set<k> keySet:将Map中所有的键存入到Set集合,因为set具备迭代器。
所有可以迭代方式取出所有的键,在根据get方法,获取每一个键对应的值
map集合的取出原理:将map集合转成set集合,通过迭代器取出
2、Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set
集合中,而这个关系的数据类型就是Map.Entry
Map.Entry其实Entry也是一个接口,它是Map接口中的一个内部接口
先获取map集合的所有键的Set集合,keySet
Set<String> keySet = map.keySet();
有了Set集合,就可以获取其迭代器
Iterator<String> it = keySet.iterator();
map扩展知识
map集合被使用是因为具备映射关系
Arrays:用于操作数组的工具类
把数组变成list集合有什么好处?
可以使用集合的方法和思想来操作数组中的元素
注意:将数组变成集合,不可以使用集合的增删方法
因为数组的长度是固定的
contains get indexOf() subList()
如果你增删,那么会发生UnsupportedOperationException,
如果数组中的元素都是对象,那么变成集合时,数组中的元素 直接转换成集合中的元素
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在
其他对象:类中的方法和属性都是静态的
System描述系统的一些信息
out:标准输出,默认是控制台
in:默认输入,默认是键盘
获取所有系统属性信息
高级for循环
格式:
for(数据类型 变量名 :被遍历的集合(Collection)或者数组){}
传统for和高级for有什么区别?
高级for有一个局限性,必须有被遍历的目标
建议在遍历数组时,还是希望使用传统for,因为传统for可以定义角标
System.getProperties();
如何在系统自定义一些特有信息?
因为Properties是HashTable的子类,也就是Map集合的子类对象
那么可以通过map的方法取出该集合中的元素
该集合中存储都是字符串,没有定义泛型
System.setProperties();
Runtime对象?
该类没有提供构造函数
说明不可以new对象,那么会直接想到该类中的方法都是静态的
发现该类中还有非静态方法
说明该类肯定有这个会提供了方法获取本类对象,而且该方法是静态的,并且返回值类型是本类类型
由这个特点可以看出该类使用了单类设计模式
该方式是static Runtime getRuntime();
Date
Calendar
Math—Random
因为Properties是HashTable的子类,也就是Map集合的子类对象
那么可以通过map的方法取出该集合中的元素
该集合中存储都是字符串,没有定义泛型
StaticImport静态导入
当类名重名时,需要指定具体的包名
当方法重名时,指定具体所属的对象或者类名
1、添加
put(K key,V value)
putAll(Map<? extends K,?extends V> m)
2、删除
clear()
remove(Object key)
3、判断
containsValue(Object value)
containsKey(Object key)
isEmpty()
4、获取
get(Object key)
size()
values();
entrySet()
keySet()
Map
|--Hashtable:底层是哈希表结构,不可以存入null键,null值,该集合是线程同步的
|--HashMap:底层是哈希表数据结构,允许使用null键,null值该集合是不同步的,效率高
|--TreeMap底层数据结构是二叉树,线程不同步,可以用于给map集合中的键进行排序
和set很像
其实set底层就是使用了map集合
map集合的两种取出方式:
1、Set<k> keySet:将Map中所有的键存入到Set集合,因为set具备迭代器。
所有可以迭代方式取出所有的键,在根据get方法,获取每一个键对应的值
map集合的取出原理:将map集合转成set集合,通过迭代器取出
2、Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set
集合中,而这个关系的数据类型就是Map.Entry
Map.Entry其实Entry也是一个接口,它是Map接口中的一个内部接口
先获取map集合的所有键的Set集合,keySet
Set<String> keySet = map.keySet();
有了Set集合,就可以获取其迭代器
Iterator<String> it = keySet.iterator();
map扩展知识
map集合被使用是因为具备映射关系
Arrays:用于操作数组的工具类
把数组变成list集合有什么好处?
可以使用集合的方法和思想来操作数组中的元素
注意:将数组变成集合,不可以使用集合的增删方法
因为数组的长度是固定的
contains get indexOf() subList()
如果你增删,那么会发生UnsupportedOperationException,
如果数组中的元素都是对象,那么变成集合时,数组中的元素 直接转换成集合中的元素
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在
其他对象:类中的方法和属性都是静态的
System描述系统的一些信息
out:标准输出,默认是控制台
in:默认输入,默认是键盘
获取所有系统属性信息
高级for循环
格式:
for(数据类型 变量名 :被遍历的集合(Collection)或者数组){}
传统for和高级for有什么区别?
高级for有一个局限性,必须有被遍历的目标
建议在遍历数组时,还是希望使用传统for,因为传统for可以定义角标
System.getProperties();
如何在系统自定义一些特有信息?
因为Properties是HashTable的子类,也就是Map集合的子类对象
那么可以通过map的方法取出该集合中的元素
该集合中存储都是字符串,没有定义泛型
System.setProperties();
Runtime对象?
该类没有提供构造函数
说明不可以new对象,那么会直接想到该类中的方法都是静态的
发现该类中还有非静态方法
说明该类肯定有这个会提供了方法获取本类对象,而且该方法是静态的,并且返回值类型是本类类型
由这个特点可以看出该类使用了单类设计模式
该方式是static Runtime getRuntime();
Date
Calendar
Math—Random
因为Properties是HashTable的子类,也就是Map集合的子类对象
那么可以通过map的方法取出该集合中的元素
该集合中存储都是字符串,没有定义泛型
StaticImport静态导入
当类名重名时,需要指定具体的包名
当方法重名时,指定具体所属的对象或者类名