Java Map集合

·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<String, String> m = new HashMap<>();
		m.put("a","aa");
		m.put("b","bb");
		m.put("c","cc");
		m.put("d","dd");
	
		Set<String> s = m.keySet();
		for(Iterator<String> is = s.iterator(); is.hasNext();)
		{
			String key = is.next();
			System.out.println("key :" + key + " value :" + m.get(key));
		}

		System.out.println("-----------------------------");

		Set<Map.Entry<String, String>> sme = m.entrySet();	//返回Set<Map.Entry<K, V>>类型 包含一对键值
		for(Iterator<Map.Entry<String, String>> ime = sme.iterator();ime.hasNext();)
		{
			Map.Entry<String, String> 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吧

 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值