map集合,对象以键值对的形式存放在集合中,并且键它是不允许重复的。常用的实现是HashMap和TreeMap,HashMap能够快速的查询到一个键,而TreeMap则是对键按序存放的。
map中的keyset()返回此映射中包含的键的 Set 视图,entryset()返回此映射中包含的映射关系的 Set 视图。
例如:
public void test3() {
Map map = new HashMap();
map.put("a", "aaa");
map.put("b", "bbb");
map.put("c", "ccc");
// 先取 key 再取 value
Set keys = map.keySet();
Iterator keyIterator = keys.iterator();
while(keyIterator.hasNext()) {
String key = (String) keyIterator.next();
String value = (String) map.get(key);
System.out.println(key + "=" + value);
}
System.out.println("----------------------------");
// 取出所有 键值映射关系
Set entrys = map.entrySet();
Iterator entryIterator = entrys.iterator();
while(entryIterator.hasNext()) {
Entry entry = (Entry) entryIterator.next();
System.out.println(entry.getKey() + "=" + entry.getValue());
}
System.out.println("------------------------");
// 增强for循环
for(Object obj : map.entrySet()) {
Entry entry = (Entry) obj;
System.out.println(entry.getKey() + "=" + entry.getValue());
}
}
注意: 迭代集合的同时不能对集合进行增删操作java.util.ConcurrentModificationException
在迭代集合的同时需要对集合进行增删元素,一定要调用迭代器的方法
list接口是对collection的扩充,它允许存放相同的元素。常用的有2种实现类,ArrayList和LinkedList。ArraryList是一种以数组形式存放元素的集合,更适合于做查询,而LinkedList内部实现链表,适合做增删元素操作。
set接口同样是对collection的扩充,它不允许存放相同的元素。常用类HashSet和TreeSet.HashSet主要能够快速定位到一个元素,需要用到HashCode()方法,而TreeSet类中可以实现对元素的排序。 |