Map集合的遍历操作
HashMap的遍历
Map map = new HashMap();
map.put(1,"suitianshuang");
map.put(2,"tianshuangsui");
map.put(3,"shuangtiansui");
//遍历所有的key集:使用keySet(),(map集合的key使用的是Set进行存储的)
Set set = map.keySet();
iterator iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//遍历所有的value集:使用values()
Collection values = map.values();
for(Object obj : values){
System.out.println(obj);
}
//遍历所有的key-value键值对:使用entrySet()
Set entrySet = map.entrySet();
Iterator iterator = entrySet.iterator();
while(iterator.hasNext()){
Object obj = iterator.next();
//entrySet集合中的元素都是Entry,就是一对一对的key-value
Map.Entry entry = (Map.Entry) obj;
System.out.println(entry.getKey()+"--->"+entry.getValue());
}
//另一种遍历集合的方式
//使用前两种方式进行拼接也可以代替entrySet()
Set set = map.keySet();
iterator iterator = set.iterator();
while(iterator.hasNext()){
Object key = iterator.next();
Object value = map.get(key);
System.out.println(key+"--->"+value);
}
TreeMap
- 向TreeMap中添加key - value 要求key必须是同一个类创建的对象。
- 因为要按照key进行排序:自然排序、定制排序
遍历方式和HashMap一样,但是要么使用自然排序,要么提供key的排序规则,不能根据value进行排序(定制排序)。
Hashtable 的子类Properties
该对象用于处理属性文件,所以key 和value 都是String类型的。
@Test
public void test(){
Properties properties = new Properties();
//省略try catch finally
//name=suitianshuang
//password=123456
//属性文件中的等号两侧不要打空格
FileInputStream stream = new FileInputStream("jdbc.properties");
//加载流对应的文件
properties.load(stream);
String name = properties.getProperty("name");
String password = properties.getProperties("password");
stream.close();
//拿到属性文件的值之后,在进行相关的操作
...
//如果出现中文乱码需要将设置中的File Encodings中的编码改为UTF-8,并且将Transparent native-to-ascii conversion勾挑上。
}