Collection接口和Map接口都是集合框架的老祖先
其中Collection 是单列集合,Map是双列集合
key-value键值对
键可以重复,但值不可以重复
Map:
(1)HashMap 底层存储结构是哈希表 键值都可以为NULL
(2)TreeMap 底层是二叉树,支持键排序
(3)HashTable 底层存储结构是哈希表,但键值不可以为NULL,已经过时,少用
keyset,valueset ,entryset(Map.Entry)
entry=一行,一个条目、
TreeMap:有序的(键是有序的)
测试类:
package javastudy;
import java.security.KeyStore.Entry;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeMap;
import org.omg.IOP.Codec;
public class MyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//HashMap<String, String> cities = new HashMap<String, String>();
TreeMap<String, String> cities = new TreeMap<String, String>();
cities.put("010","北京");
cities.put("011","东京");
cities.put("012","西京");
cities.put("013","南京");
//1.获得所有键的集合keyset
Set<String> zips = cities.keySet();// 不允许键重复,可以用Set存放
Iterator<String> it = zips.iterator();
while (it.hasNext()) {
int Number=zips.size();
String zip = it.next();
String cityName = cities.get(zip);
System.out.println(zip + ":" + cityName);
}
//2.获得所有值的集合valueset
Collection<String> cityNames = cities.values();// 值可以重复,可以用Collection存放
Iterator<String> it1 = cityNames.iterator();
while (it1.hasNext()) {
System.out.println(it1.next());
}
//3.获得所有条目entryset
Set<java.util.Map.Entry<String, String>> entries = cities.entrySet();
Iterator<java.util.Map.Entry<String, String>> it2 = entries.iterator();
while (it2.hasNext()) {
java.util.Map.Entry<String, String> entry = it2.next();
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
//class cite {
// String Number;
// String Name;
// cite(String Number,String Name){
//
// this.Number=Number;
// this.Name=Name;
// }
// @Override
// public String toString() {
// return "cite [Number=" + Number + ", Name=" + Name + "]";
// }
//
//}
//
//
//class MyCom implements Comparator<cite>{
//
// @Override
// public int compare(cite o1, cite o2) {
// // TODO Auto-generated method stub
// return o1.Name.compareTo(o2.Name);
// }
//
//
//}
//
//
//
//
读取方式
1.获得所有键的集合keyset
2.获得所有值的集合valueset
3.获得所有条目entryset