Java集合中的Map与Set
一.Map集合
-
Map接口:
(1)HashMap;Map的主要实现类
(2)LinkedHashMap;:使用链表维护添加进Map中的顺序,故遍历Map时,是按照添加的顺序遍历的
(3)TreeMap;按照添加进Map中的元素的指定属性进行排序。要求key必须是同一个类的对象!
(4)Properties;常用来处理属性文件,键和值都为String类型的 -
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是否相同。 则只能添加进,后添加的那个元素 -
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);
}
}
}