1.关于Map集合中常用的方法
void clear():清空Map
boolean containsKey(Object key):判断Map中是否包含这样的key
boolean containsValue(Object value);判断Map中是否包含这样的value
Set
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class SetTest06 {
public static void main(String[] args) {
//1.创建Map集合
Map persons=new HashMap<>();//HashMap的默认初始化容量是16,默认加载因子是0.75
//2.存储键值对
persons.put("10000", "JACK");
persons.put("10011", "JACK");
persons.put("10002", "SUN");
persons.put("10003", "COOK");
persons.put("10004", "KING");
persons.put("10000", "LUCY");
//3.判断键值对的个数
//Map中key是无序不可重复的,和HashSet相同。
System.out.println(persons.size());//5 无序不可重复
//4.集合中是否包含这样的key
System.out.println(persons.containsKey("10000"));//true
//5.判断集合中是否包含这样的value
//注意:Map中如果key重复,会将之前的覆盖
System.out.println(persons.containsValue("LUCY"));//true
//6.通过key获取value
String k="10011";
Object v=persons.get(k);
System.out.println(v);//JACK
//7.通过key删除键值对
persons.remove("10002");
System.out.println(persons.size());//4
//8.获取所有的value
Collection values=persons.values();
Iterator it=values.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
//9.获取所有的key
Set keys=persons.keySet();
Iterator it2=keys.iterator();
while (it2.hasNext()) {
Object key=it2.next();
Object value=persons.get(key);
System.out.println(key+"------->"+value);
}
//10
//将Map转换成Set集合。
Set personSet=persons.entrySet();
Iterator it3=personSet.iterator();
while (it3.hasNext()) {
System.out.println(it3.next());
}
/*
* 输出结果
* 10000=LUCY
10011=JACK
10004=KING
10003=COOK
*/
}
}
2.HashTable子类型
HashTable默认初始化容量11,默认加载因子0.75
java.util.Properties(IO部分再详解),也是由key和value组成,但是key和value都是(String)字符串类型
import java.util.Properties;
public class HashTable {
public static void main(String[] args) {
//1.创建Properties对象
Properties p=new Properties();
//2.存 注意key不能重复,如果重复则value覆盖
p.setProperty("driver", "oracle.jdbc.driver.OracleDriver");
p.setProperty("username", "root");
p.setProperty("password", "123456");
p.setProperty("url", "jdbc:oracle:thin:@127.0.0.1:1521:mytest");
//3.取
String v1=p.getProperty("driver");
String v2=p.getProperty("username");
String v3=p.getProperty("password");
String v4=p.getProperty("url");
//4.输出
System.out.println(v1);
System.out.println(v2);
System.out.println(v3);
System.out.println(v4);
}
}
3.TreeMap
SortedMap中的key特点:无序不可重复,但是存进去的元素可以按照大小自动排序。
如果想自动排序:key部分的元素需要(1)实现comparable或者(2)单独写一个comparator比较器。
import java.util.Comparator;
import java.util.Iterator;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
public class MapTest03 {
public static void main(String[] args) {
//Map key存储Product,value存储重量
//SortedMap products= new TreeMap();
//匿名内部类(比较器的方法)
SortedMap products= new TreeMap(new Comparator() {
public int compare(Object o1,Object o2) {
double price1=((Product2)o1).price;
double price2=((Product2)o2).price;
if(price1<price2) {
return -1;
}else if (price1>price2) {
return 1;
}else {
return 0;
}
}
});
//准备对象
Product2 p1=new Product2("西瓜",1.0);
Product2 p2=new Product2("苹果",4.0);
Product2 p3=new Product2("桃子",5.0);
Product2 p4=new Product2("香蕉",3.0);
//添加
products.put(p1, 8.0);
products.put(p2, 3.0);
products.put(p3, 4.0);
products.put(p4, 10.0);
//遍历
Set keys=products.keySet();
Iterator it=keys.iterator();
while (it.hasNext()) {
Object key = it.next();
Object value=products.get(key);
System.out.println(key+"--->"+value+"kg");
/*
* 输出结果
* Product[name=西瓜,price=1.0]--->8.0kg
Product[name=香蕉,price=3.0]--->10.0kg
Product[name=苹果,price=4.0]--->3.0kg
Product[name=桃子,price=5.0]--->4.0kg
*
*/
}
}
}
//实现Comparable接口
class Product2 implements Comparable{
String name;
double price;
public Product2(String name,double price) {
this.name=name;
this.price=price;
}
public String toString() {
return "Product[name="+name+",price="+price+"]";
}
//实现compareTo方法
//按照商品价格排序
public int compareTo(Object o) {
double price1=this.price;
double price2=((Product2)o).price;
if(price1<price2) {
return -1;
}else if (price1>price2) {
return 1;
}else {
return 0;
}
}
}