list与map都是两个接口:
Collection(接口)->List(接口)->ArrayList(类)
Map(接口)->HashMap(类)
list是有序存储,而ArrayList就是它的一个实现类,用数组实现的list;
map是根据一个对象查找另外一个对象,即根据关键字查找对象,HashMap就是其中一个实现类,它是利用哈希表实现的map,就是利用对象的hashcode(hashcode()是Object的方法)进行快速散列查找。
ArrayList:动态存储多个对象,集合的长度随着集合中的对象的个数而变化。
HashMap:存储一对对象(key-value)。通过key来查找value。
ArrayList的创建:创建一个String类集合:
ArrayList list2 = new ArrayList();
ArrayList常用方法:
add() 添加元素;
get() 根据索引获取对应的值 索引是从 0 开始的;
remove(); 根据索引删除指定的值 删除之后,后面的元素会上位;
isEmpty() 判断是否为空;
indexOf() 根据指定的对象返回该对象在集合中首次出现的索引,如果没有就返回 -1;
set(int index, E element) 用指定的元素替代此列表中指定位置上的元素;
size() 获取集合的长度;
toArray() 把集合转化成数组;
toString 把数组转化成字符串 ;
HashMap的创建:通过String类的key查找String的value:
HashMap<String,String> hm=new HashMap<String,String>();
HashMap的常用的基本方法:
put() 往集合添加数据/添加一对key-value,例如:put(String key , String value);
size() 返回键值对的个数;
get(key) 返回指定键所映射的值,根据key,返回相应的value;
isEmpty() 判断集合是否有键值对,没有的话就是 true,否则就是 false;
containsKey(key) 判断是否包含指定的键;
containsValue(value) 判断是否包含 指定的值;
clear() 清空集合中所有的键值对;
remove(key) 删除某个键值;
ArrayList的遍历:
ArrayList array = new ArrayList();
array.add("1");
array.add("2");
array.add("3");
//遍历方法一:通过迭代器Iterator进行遍历
Iterator iter = array.iterator();
while(iter.hasNext()){
String number = (String)iter.next();
System.out.println(number);
}
//遍历方法二:使用for循环遍历
for(int i=0;i<array.size();i++){
System.out.println(array.get(i));
}
HashMap的遍历:
HashMap hashMap = new HashMap();
hashMap.put("number1", "一");
hashMap.put("number2", "二");
hashMap.put("number3", "三");
//遍历方法一:hashMap.entrySet()方法,通过迭代器Iterator进行遍历效率高
Iterator iter1 = hashMap.entrySet().iterator();
while(iter1.hasNext()){
Map.Entry number = (Map.Entry)iter1.next();
String Key = (String)number.getKey();
String Value = (String)number.getValue();
System.out.println(Key + "'是" + Value);
}
//遍历方法二:hashMap.keySet()方法,通过迭代器Iterator进行遍历效率低
Iterator iter2 = hashMap.keySet().iterator();
while (iter2.hasNext()) {
Object key = iter.next();
Object val = hashMap.get(key);
}
//遍历方法三:foreach方法来遍历keyset,和第二种没有什么区别
Set keySet = hashMap.keySet();
for(Object key: keySet) {
System.out.print("key=" + key + ",value=" + hashMap.get(key) );
}