JAVA 二十四 Map集合

JAVA 二十四 Map集合

标签: JAVA


Map

public interface Mapo <K,V> {

}
  • 键值对—–<1KEY,Value> —–<键,值>
  • HashMap
    • -
import java.util.Collection;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
 * Map:接口,该集合存储数据采用的是键值对的存储模式
 * Key是唯一的
 * HashMap:实现类
 *
 * v put(key,value)
 * 返回值,如果没有相同的key则返回null,如果有相同的key则返回对应的旧值,并用新值覆盖
 * 
 * public void putAll(Map<? extends K,? extends V> m);
 * 若有相同的key值 则会替换曾经的value
 *
 * public int size()
 * 获取集合的长度
 * 
 * public V get(Object key)
 * 获取对应key的值,如果没有key没有对应映射则返回null
 * 
 * public Set<K> keySet()
 * 获取集合中所有的Key值的方法,储存在Set集合中
 *
 * public Collection<V> values()
 * 获取集合中所有value的方法,储存在Collection集合中
 * 
 * public Set<Map.Entry<K,V>> entrySet()
 * 获取集合中所有的key-value对,返回值是Set集合
 * 该集合里面存储的是Map.Entry类型的对象,Map.Entry是一个泛型的接口,需要指定key和value的类型,
 * 遍历Set集合,得到Map.Entry对象,使用该对象的getKey和getValue方法获取对应的值
 * 
 * public boolean containsKey(Object key)
 * public boolean containsValue(Object value)
 * 集合中是否包含指定的value或者集合中是否包含key,返回值是布尔值boolean
 * 
 * public boolean isEmpty()
 * 用于判断集合是否为空,如果是空的返回true,如果不是空的返回false
 * 
 * public V remove(Object key)
 * 给一个key,删除指定key,返回value(删除的值)
 * 如果根据这个key值没有找到value则返回null
 * 对于key是否相同 , 判断规则是 hashcode和equals,hashcode相同,判断equals
 * 如果hashcode不相同,则不用判断equals
 * 
 * Map
 *     Hashtable key和value都不可以是null
 *     HashMap key是通过hashcode和equals方法保证唯一 key和value都可以为null,将Hashtable替代
 *     ThreeMap 底层采用二叉树,通过compareTo方法验证key是否唯一
 * 
 */
public class HashMapDemo {
    public static void main(String[] args){
        Map<String,String> map = new HashMap<String,String>();

        //v put(key,value)

        System.out.println(map.put("1", "1"));
        System.out.println(map.put("2", "2"));
        System.out.println(map.put("3", "1"));
        System.out.println(map.put("1", "1"));
        System.out.println(map.put("4", "2"));
        System.out.println(map);

        //public void putAll(Map<? extends K,? extends V> m);

        Map<String,String> map1 =new HashMap<String,String>();
        map1.put("2", "33");
        map1.put("3", "22");
        map.putAll(map1);
        System.out.println(map);
        System.out.println(map.size());

        //public V get(Object key)

        System.out.println(map.get("1"));
        System.out.println(map.get("11"));

        //使用Set方法得到value的遍历
        //第一步获取所有的Key
        Set<String> set = map.keySet();
        //建立迭代器,遍历所有的Key
        Iterator<String> it = set.iterator();
        while(it.hasNext()){
            //使用map.get方法来获取每一个key对应的value
            System.out.println(map.get(it.next()));
        }
        //public Collection<V> values()
        Collection<String> values = map.values();
        Iterator<String> itv = values.iterator();
        while(itv.hasNext()){
            System.out.println(itv.next());
        }
        Set<Map.Entry<String, String>> set1 = map.entrySet();
        Iterator<Map.Entry<String, String>> it1 = set1.iterator();
        while(it1.hasNext()){
            Map.Entry<String, String> mape= it1.next();
            System.out.println(mape);
        }
        //public boolean containsKey(Object key)
        //public boolean containsValue(Object value)
        System.out.println(map.containsKey("1"));
        System.out.println(map.containsKey("11"));
        System.out.println(map.containsValue("1"));
        System.out.println(map.containsValue("1111"));
        //public boolean isEmpty()
        System.out.println(map.isEmpty());
        System.out.println(map.remove("1"));
        System.out.println(map);
        map.clear();
        System.out.println(map.isEmpty());
        Hashtable<String, String> t=new Hashtable<String, String>();
        t.put("aa", "bb");
        //Hashtable不可以用null作为参数添加到集合中
        //t.put(null, null);
        System.out.println(t);
    }
}

工人练习


public class Workeradd {
    private String name;
    private int age;
    private double salary;
    private Address address;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    public Address getAddress() {
        return address;
    }
    public void setAddress(Address address) {
        this.address = address;
    }
    public Workeradd(String name,int age,double salary,Address add){
        this.name=name;
        this.age=age;
        this.salary=salary;
        this.address=add;
    }
    public boolean equals(Object obj) {
        // TODO Auto-generated method stub
        if(obj instanceof Workeradd){
            Workeradd wo=(Workeradd)obj;
            return this.name==wo.name&&this.age==wo.age&&this.salary==salary;
        }else{
            return false;
        }
    }
    public int hashCode(){
        return (int) (this.name.hashCode()+this.age+this.salary+address.hashCode());
    }
    public String toString(){
        return this.getName()+"|"+this.getAge()+"|"+this.getSalary()+"|"+this.getAddress();
    }
}
import java.util.HashSet;
import java.util.Set;

public class WorkerSet {
    public static void main(String[] args){
        Set<Workeradd> set = new HashSet();
        set.add(new Workeradd("张三",20,3000.00,new Address("先锋路","沃尔玛")));
        set.add(new Workeradd("张三",20,3000.00,new Address("先锋路","沃尔玛")));
        Workeradd wo1=new Workeradd("张三",20,3000.00,new Address("先锋路","沃尔玛"));
        Workeradd wo2=new Workeradd("张三",20,3000.00,new Address("先锋路","沃尔玛"));
        System.out.println(wo1.getAddress());
        Address add1 = new Address("先锋路","沃尔玛");
        Address add2 = new Address("先锋路","沃尔玛");
        System.out.println(add1.hashCode());
        System.out.println(add2.hashCode());
        System.out.println(add1.equals(add2));
        System.out.println(set);
    }
}

世界杯查询模拟

import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

/*
 * 世界杯冠军模拟
 */
public class Text2 {
    public static void main(String[] args){
        Map<Integer,String> map = new TreeMap<Integer,String>();
        map.put(2006,"意大利");
        map.put(2002,"巴西");
        map.put(1998,"法国");
        map.put(1994,"巴西");
        map.put(1990,"德国");
        map.put(1986,"阿根廷");
        map.put(1982,"意大利");
        map.put(1978,"阿根廷");
        map.put(1974,"德国");
        map.put(1970,"巴西");
        map.put(1966,"英格兰");
        map.put(1962,"巴西");
        map.put(1958,"巴西");
        map.put(1954,"德国");
        map.put(1950,"乌拉圭");
        map.put(1938,"意大利");
        map.put(1934,"意大利");
        map.put(1930,"乌拉圭");
        System.out.println(map);
        System.out.println("请输入一个年份");
        Scanner input = new Scanner(System.in);
        int year = input.nextInt();
        Set<Integer> set = map.keySet();
        Iterator<Integer> it = set.iterator();
        boolean b =false;
        while(it.hasNext()){
            int year2 = it.next();
            if(year==year2){
                System.out.println(year2);
                System.out.println(map.get(year2));
                b=true;
            }
        }
        if(b){

        }else{
            System.out.println("没有举办世界杯");
        }
    }
}

教师课表编排

import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;

public class Text3 {
    public static void main(String[] args){
        Map<String,String> map = new TreeMap<String,String>();
        map.put("Tom", "CoreJava");
        map.put("John", "Oracle");
        map.put("Susan", "Oracle");
        map.put("Jerry", "JDBC");
        map.put("Jim", "Unix");
        map.put("Kevin", "Jsp");
        map.put("Lucy", "Jsp");
        System.out.println(map);
        map.put("Allen", "JDBC");
        map.put("Lucy","CoreJava");
        Set<Map.Entry<String,String>> set = map.entrySet();
        Iterator<Map.Entry<String,String>> it1 = set.iterator();
        while(it1.hasNext()){
            Entry<String, String> str1  = it1.next();
            System.out.println(str1);
        }
        Iterator<Map.Entry<String,String>> it2 = set.iterator();
        while(it2.hasNext()){
            Entry<String, String> str2  = it2.next();
            if(str2.getValue().equals("Jsp")){
                String str = str2.getKey();
                System.out.println(str2);
            }
        }                                                                                                                                                                             
        for (Map.Entry<String, String> entry : map.entrySet()) {  
            if("Jsp".equals(entry.getValue())){  
                System.out.println(entry.getKey());
            }
        }    
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值