java中Map接口中常见的方法

Map---接口

        存储”键值对“,健不可以重复(这里健不能重复不是说在代码上会报错,而是重复的健的值会被覆盖,即唯一的健,可以对应多个值)

        Map<Integer,String> map = new HashMap<>();

        map.put(1,"dff");

        map.put(1,"dfjfkdk");

        map.get(1)-----"dfjfkdk"

 

实现的类有HashMap,TreeMap,HashTable,Properities等

 

Map中常见的方法

package com.datastures.maptest;

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

/**

 * 测试接口map中的方法

 * @author zhuaisha98kbaoni

 *

 */

public class MapTest {

       public static void main(String[] args) {

             Map<Integer,Employees> map = new HashMap<>();  

             /*

              * 加入数据

              */

             Employees employees01 = new Employees("张三", 20, 5000);

             Employees employees02 = new Employees("里斯", 50, 8000);

             Employees employees03 = new Employees("赵六", 30, 3000);

             Employees employees04 = new Employees("王五", 27, 4500);

             Employees employees05 = new Employees("七牛", 40, 1000);

             

             map.put(1, employees01);

             map.put(2, employees02);

             map.put(3, employees03);

             map.put(4, employees04);

             map.put(5, employees05);

             

             /*

              * 取指定健的值

              */

             Employees employees = map.get(4);

             System.out.println("该员工的基本信息:" + "\n" + "姓名:" + employees.getName() +"\n" + "年龄:" + employees.getAge() + "\n" + "工资:" + employees.getSalary());

             

             /*

              * 值的迭代

              * Collection<Employees> collection2 = new ArrayList<Employees>(map.values());

              */

             Collection<Employees> collection = map.values();

             Iterator<Employees> iterator = collection.iterator();

             while (iterator.hasNext()) {

                    Employees employ = iterator.next();

                    System.out.println(employ.getName() + "\t" + employ.getAge() + "\t" + employ.getSalary());

                    /*

                     * 这里犯了错误,以为迭代器中存储的时Employees对象,

                     * 就可以直接使用iterator.toString()方法得到

                     * public String toString() {

               *           return getClass().getName() + "@" + Integer.toHexString(hashCode());

               * }

               * 所以下面的语句的结果一样,即地址一样

                     */

                    System.out.println(iterator.toString());

             }

             

             System.out.println("获得值:");

             for (Employees employees2 : collection) {

                    System.out.println(employees2.getName() + "\t" + employees2.getAge() + "\t" + employees2.getSalary());

             }

             

             /*

              * 获取健

              */

             System.out.println("获得键:");

             Set<Integer> set = map.keySet();

             Iterator<Integer> iterator2 = set.iterator();

             while (iterator2.hasNext()) {

                    Integer integer = iterator2.next();

                    System.out.println(map.get(integer).getName() + "\t" + map.get(integer).getAge() + "\t" +map.get(integer).getSalary());

             }

             

             /*

              * 键值映射的数量

              */

             System.out.println("\n\n\n" + "键值映射的数量:");

             System.out.println(map.size());

             

             /*

              * 指定的健的值被替换

              */

             Employees employees06 = new Employees("liuliu", 56, 12000);

             boolean ifreplace = map.replace(5, employees05, employees06);

             if (ifreplace) {

                    System.out.println("替换成功!");

                    System.out.println(employees06.hashCode() + "&&&&&&&&&");

                    employees06 = map.get(5);

                    System.out.println(employees06.hashCode() + "***********");

                    System.out.println(employees06.getName() + "\t" + employees06.getAge() + "\t" + employees06.getSalary());

             }else{

                    System.out.println("替换不成功!");

             }

             

             /*

              * 移除某个键值对

              */

             boolean ifremove = map.remove(4, map.get(4));

             if (ifremove) {

                    System.out.println("删除成功!");

                    Set<Integer> set1 = map.keySet();

                    Iterator<Integer> iterator3 = set1.iterator();

                    while (iterator3.hasNext()) {

                           Integer integer = iterator3.next();

                           System.out.println(map.get(integer).getName() + "\t" + map.get(integer).getAge() + "\t" +map.get(integer).getSalary());

                    }

             }

             

             /*

              * 是否包含某个健,某个值

              */

             boolean ifKey =  map.containsKey(5);

             if(ifKey){

                    System.out.println("存在健,所对应的值:" + map.get(5).getName());

             }

             boolean ifValue = map.containsValue(employees06);

             if(ifValue){

                    System.out.println("存在值!");

             }

       }

}

 

package com.datastures.maptest;

/*
 * 员工的基本信息
 */
public class Employees {
    
    private String name;
    private int age;
    private float salary;
    
    public Employees(String name,int age,float salary) {
        this.name = name;
        this.age = age;
        this.salary =salary;
    }

    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 float getSalary() {
        return salary;
    }

    public void setSalary(float salary) {
        this.salary = salary;
    }   

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值