·MAP 映射
·map是一个一个的 keyàvalue对
·map的keySet()方法返回Map集合中的所有Key,这些返回key的类型是Set集合,所以key是不能重复的。value是Collection所以值能重复,MAP是通过Key找到value的,所以map中着重围绕key来讲。
·HashMap底层也维护一个数组,当我们向HashMap中放置对象时实际上是放到了该数组中。
·Map常用方法:
voidclear() : 删除Map中所有key-value对。
booleancontainsKey(Object key) : 查找map中是否包含指定key,如果包含返回TRUE。
booleancontainsValue(Object value) : 查找map中是否包指定的value,如果包含返回TRUE。
Set keyset(): 返回Map中所有的key组成的集合。
Objectput(Object kye,Object value) : 将Key àvalue对添加到Map集合当中。
Objectget(Object key) : 返回指定key对应的value。
booleanisEmpty() : Map是否没有包含任何key àvalue对,如果是返回TRUE
voidputAll(Map m) : 将指定Map中的所有key àvalue对复制到本Map集合中。
Objectremove(Object key) : 将指定key的Key à对删除,返回被删除key对应的value,如果key不存在返回null。
intsize() : 返回key à value对的个数。
Collectionvalues() : 返回该Map中所有value组成的Collection。
·Map.Entry : 是Map的内部类其中包含的方法有:
SetentrySet() : 返回Map中所有的Key àvalue 对,每个元素都是内部类Map.Entry的对象。
ObjectgetKey() : 获取Map中(其实Map中就是Entry)的所有key的值。
ObjectgetValue(): 返回Map中所有的value。
例子:Key的值不能重复,否则后面的Keyàvalue对覆盖前面的key value对。
import java.util.*;
public class MapTest1
{
public static void main(String[] args)
{
HashMap hm = new HashMap();
hm.put("a","aa");
hm.put("a","aaaa");
hm.put("b","bb");
System.out.println(hm);
}
}
+++++++ 输出结果 ++++++
{b=bb, a=aaaa}
·LinkedHashMap 就是按照先后顺序插入的HashMap
·Hashtable与HashMap都是Map的实现,Hashtable比较古老几乎被淘汰不用,但是Properties类感觉挺好,它是Hashtable的子类。作用是可以将key=value 对写入到配置文件,也可以从文件读取key = value对,所以感觉挺有用的。
·获取map key à value方法演示2种方法:
例子:
import java.util.*;
public class HashMapT
{
public static void main(String[] args)
{
Map m = new HashMap<>();
m.put("a","aa");
m.put("b","bb");
m.put("c","cc");
m.put("d","dd");
Set s = m.keySet();
for(Iterator is = s.iterator(); is.hasNext();)
{
String key = is.next();
System.out.println("key :" + key + " value :" + m.get(key));
}
System.out.println("-----------------------------");
Set> sme = m.entrySet(); //返回Set>类型 包含一对键值
for(Iterator> ime = sme.iterator();ime.hasNext();)
{
Map.Entry me = ime.next();
String mekey = me.getKey();
String mevalue = me.getValue();
System.out.println("key :" + mekey + " value :" + mevalue);
}
}
}
·Porperties类方法:
·Object setProperty(Stringkey, String value) 设置key和value,类似HashMap.
·StringgetProperty(String key) : 获取key对应的value
·StringgetProperty(String key, String defaultValue) : 跟上一个方法类似,参见API文档
·void load(InputStreaminStream) : 从文件读入key = value信息。
·void store(OutputStreamout, String comments) : 将 key = value对写入到文件。
例子:
import java.util.*;
import java.io.*;
public class TestProperties
{
public static void main(String[] args)
throws Exception
{
Properties p = new Properties();
p.setProperty("user","password");
p.setProperty("root","123456");
p.store(new FileOutputStream("test.txt"),"this is comment");
Properties p1 = new Properties();
p1.setProperty("config","value");
p1.load(new FileInputStream("test.txt"));
System.out.println(p1);
}
}
++++ 输出结果 ++++
生成test.txt文件,内容为:
#this is comment
#Mon Nov 18 22:24:33 CST 2013
root=123456
user=password
然后p1增加了另一个key = value 对,并读入test.txt的key = value对。
{root=123456, user=password, config=value}
·TreeMap
正如Set接口派生SortedSet子接口,SortedSet有一个TreeSet实现类,因为Set就是由MAP实现的,所以Map就是这样的Map接口派生了SortedMap子接口,TreeMap类实现了SortedMap接口。
自然排序:跟TreeSet一样
自定义排序:更TreeSet一样
集合这张我是真不想往下写了,我TM不看了!感觉太没必要了...接着后面的JDBC吧