Java的笔记(二)

Java集合中的Map与Set

一.Map集合

  1. Map接口:
    (1)HashMap;Map的主要实现类
    (2)LinkedHashMap;:使用链表维护添加进Map中的顺序,故遍历Map时,是按照添加的顺序遍历的
    (3)TreeMap;按照添加进Map中的元素的指定属性进行排序。要求key必须是同一个类的对象!
    (4)Properties;常用来处理属性文件,键和值都为String类型的

  2. Map的一些操作:

    添加: Object put (Object key,Object value):向Map中添加一个元素或对象
    删除: Object remove(Object key):按照指定的key删除此key-value
    返回集合的长度: int size()
    清空 : void clear()
    获取指定key的value值,若无,则返回null : Object get(Object key)

    HashMap:
    1.key是用Set来存放的,不可重复。value是用Collection来存放的,可重复
    一个key-value对,是一个Entry。所有Entry是用Set存放的,也是不可重复的。
    2.向HashMap中添加元素时,会调用key所在类的equals()方法,判断两个key是否相同。 则只能添加进,后添加的那个元素

  3. Map的遍历:

    遍历key集: Set keySet()
    遍历value集: Collection values()
    遍历key-value对: Set entrySet()

例子:

//引入的包
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.TreeMap;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.junit.Test;

public class TestMap1 {

	
 @Test
 public void test1(){
//创建一个HashMap对象

	Map map = new HashMap();
//添加操作
    map.put("A", 123);
    map.put("B", 456);
    map.put(123, "C");
    map.put(null, null);
	System.out.println(map.size());
	System.out.println(map);
//删除操作:
	map.remove("B");
	System.out.println(map);
//获取操作:
	Object value = map.get("A");
	System.out.println(value);
}

/----------------------------------------------------------------------------------------------------------------/

@Test
public void test3() {
//创建一个LinkedHashMap对象
	Map map = new LinkedHashMap();
	map.put("A", 123);
	map.put("B", 456);
	map.put(123, "C");
	map.put(null, null);
//遍历操作:	
	 Set set1 = map.keySet();
	    for(Object obj1 : set1)
	    {
	    	System.out.println(obj1 + "------>"+map.get(obj1));
	    }
}

/----------------------------------------------------------------------------------------------------------------/

@Test
	public void test4() {
//创建一个TreeMap的对象
		Map map = new TreeMap();
		map.put(new Person("A",23),89);
		map.put(new Person("B",22),77);
		map.put(new Person("G",23),45);
		map.put(new Person("J",13),34);
		Set set1 = map.keySet();
	    for(Object obj1 : set1)
	    {
	    	System.out.println(obj1 + "------>"+map.get(obj1));
	    }
	}

/----------------------------------------------------------------------------------------------------------------/

@Test
	public void test6() throws FileNotFoundException, IOException {
		Properties pros = new Properties();
		pros.load(new FileInputStream(new File("jdbc.properties")));
		String user =pros.getProperty("user");
		System.out.println(user);
	}

/----------------------------------------------------------------------------------------------------------------/

@Test
	public void test2() {
		Map map = new HashMap();
		map.put("A", 123);
		map.put("B", 456);
		map.put(123, "C");
		map.put(null, null);
		
		//1.遍历key集
		Set set = map.keySet();
		for(Object obj : set) {
			System.out.println(obj);
		}
		//2.遍历value集
		Collection values = map.values();
	    Iterator i = values.iterator();
	    while(i.hasNext()) {
	    	System.out.println(i.next());
	    }
	    //3.遍历key-value对
	    //方式一
	    Set set1 = map.keySet();
	    for(Object obj1 : set1)
	    {
	    	System.out.println(obj1 + "------>"+map.get(obj1));
	    }
	    //方式二
	    Set set2 = map.entrySet();
	    for(Object obj :set2) {
	    	Map.Entry entry = (Map.Entry)obj;
	    	System.out.println(entry);
	    
	    }
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值