java基础(八)---map
MAP
Map用于保存具体映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value,key和value都可以是任意类型的数据。Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false。
map接口定义了如下方法:
Map集合的遍历:
例子:
Map<String,String> hm = new HashMap<String,String>();
hm.put("it002","hello");
hm.put("it003","world");
hm.put("it001","java");
//A:键找值
Set<String> set = hm.keySet();//获取所有键的集合
for(String key : set) {
String value = hm.get(key);
System.out.println(key+"---"+value);
}
//B:键值对对象找键和值
Set<Map.Entry<String,String>> set2 = hm.entrySet();//获取所有的键值对对象的集合
for(Map.Entry<String,String> me : set2) {
String key = me.getKey();
String value = me.getValue();
System.out.println(key+"---"+value);
数据结构
ArrayXxx:底层数据结构是数组,查询快,增删慢
LinkedXxx:底层数据结构是链表,查询慢,增删快
HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序
HashMap和Hashtable
Hashtable的一个子类Properties:
Properties类似Windows操作平台上的ini文件就是一种属性文件。Properties可以把Map对象和属性文件管理起来,从而可以把map对象中的key-value对写入属性文件。也可以把属性文件里的内容加载到map对象中,由于属性文件里的属性名、属性值只能是字符串类型,故Properties里的key、value都是字符串类型。
它有如下方法:
String getProperty(String key) :获取Properties中指定属性名对应的属性值。
Object setProperty(String key, String value) :设置属性值,类似于Hashtable的put方法。
void load(Reader reader):从属性文件中加载key-value对,把加载的key-value对追加到Properties里。
void store(OutputStream out, String comments):将Properties的key-value对输出到属性文件里。