百木园-与人分享,
就是让自己快乐。

HashMap集合(键是String键值是String案例---键是Integer键值是String案例---键是String键值是Student---键是Student键值是String)

HashMap:是基于哈希表的Map接口实现。
* 哈希表的作用是用来保证键的唯一性的。
*
* HashMap<String,String>
* 键:String
* 值:String
*/

package Day18;

import java.util.HashMap;
import java.util.Set;

public class Map2 {
    public static void main(String[] args) {
        //创建HashMap集合
        HashMap<String,String> AA = new HashMap<String,String>();

        //向集合中添加数据元素
        AA.put(\"0x001\",\"马云\");
        AA.put(\"0xOO2\",\"马化腾\");
        AA.put(\"0x003\",\"柳传志\");
        AA.put(\"0xOO4\",\"张朝阳\");

        //对HashMap集合进行遍历
        //利用键值----进行遍历
        //首先创建键的集合
        Set<String> AB = AA.keySet();
        //对键集合进行遍历
        for(String e: AB){
            ///利用键获取对应的键值
            String ABC = AA.get(e);
            //输出通过键获得的值
            System.out.println(ABC);
        }

    }

}

/*
* HashMap<Integer,String>
* 键:Integer
* 值:String
*/

package cn.itcast_02;

import java.util.HashMap;
import java.util.Set;

/*
 * HashMap<Integer,String>
 * 键:Integer
 * 值:String
 */
public class HashMapDemo2 {
    public static void main(String[] args) {
        // 创建集合对象
        HashMap<Integer, String> hm = new HashMap<Integer, String>();

        // 创建元素并添加元素
        // Integer i = new Integer(27);
        // Integer i = 27;
        // String s = \"林青霞\";
        // hm.put(i, s);

        hm.put(27, \"林青霞\");
        hm.put(30, \"风清扬\");
        hm.put(28, \"刘意\");
        hm.put(29, \"林青霞\");

        // 下面的写法是八进制,但是不能出现8以上的单个数据
        // hm.put(003, \"hello\");
        // hm.put(006, \"hello\");
        // hm.put(007, \"hello\");
        // hm.put(008, \"hello\");

        // 遍历
        Set<Integer> set = hm.keySet();
        for (Integer key : set) {
            String value = hm.get(key);
            System.out.println(key + \"---\" + value);
        }

        // 下面这种方式仅仅是集合的元素的字符串表示
        // System.out.println(\"hm:\" + hm);
    }
}

HashMap<String,Student>
* 键:String 学号
* 值:Student 学生对象

 

学生类

package Day18;

public class Student {
    private String name;
    private  int age;

    //构造
    public Student(){}

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }
}

 

测试类

package Day18;
import java.util.HashMap;
import java.util.Set;

public class Map3 {
    public static void main(String[] args) {
        //创建集合
        HashMap<String,Student> AA = new HashMap<String,Student>();

        //创建学生类对象
        Student A = new Student(\"赵同刚\",24);
        Student B = new Student(\"朱庆娜\",24);

        //给集合对象添加元素
        AA.put(\"001\",A);
        AA.put(\"002\",B);

        //进行对集合的键值遍历
        //创建键的集合
      Set<String> ABC = AA.keySet();
      //进行对键的集合遍历---来获取每个键所对应的键值
        for(String e: ABC){
            //使用键--来获取对应的集合的键值
            Student ABCD = AA.get(e);
            //输出进行查看遍历的键和值
            System.out.println(e+\"--\"+ABCD.getName()+\"--\"+ABCD.getAge());
        }
    }
}

 

HashMap<Student,String>
* 键:Student
* 要求:如果两个对象的成员变量值都相同,则为同一个对象。
* 值:String

 

学生类

    package Day18;

import java.util.Objects;

public class Student {
    private String name;
    private  int age;

    //构造
    public Student(){}

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }

    //重写HashCode和equals方法
    //使Set集合输出时不会出现重复值
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Student)) return false;
        Student student = (Student) o;
        return getAge() == student.getAge() &&
                Objects.equals(getName(), student.getName());
    }

    @Override
    public int hashCode() {
        return Objects.hash(getName(), getAge());
    }
}

 

测试类

package Day18.User;

import Day18.Student;

import java.util.HashMap;
import java.util.Set;

public class Map4 {
    public static void main(String[] args) {
        //创建集合对象
        HashMap<Student,String> AA = new HashMap<Student,String>();

        //创建学生类对象
        //键相同则键值存在覆盖
        Student A = new Student(\"赵同刚\",24);
        Student B = new Student(\"朱庆娜\",24);
        Student C = new Student(\"赵同刚\",24);
        Student D = new Student(\"王丽丽\",24);

        //向集合中添加元素
        AA.put(A,\"有钱\");
        AA.put(B,\"漂亮\");
        AA.put(C,\"删除\");
        AA.put(D,\"幸运\");

        //遍历
        //首先将所有键放到一个集合中
        //Set类型是键的类型----创建键的集合
        Set<Student> ABC= AA.keySet();
        //对集合进行遍历
        for(Student e: ABC){
            //利用键获取键值
            String ABCD = AA.get(e);
            System.out.println(e.getName()+\"--\"+e.getAge()+\"---\"+ABCD);
        }

    }
}

 


来源:https://www.cnblogs.com/ztg-java-xuexi/p/16065211.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » HashMap集合(键是String键值是String案例---键是Integer键值是String案例---键是String键值是Student---键是Student键值是String)

相关推荐

  • 暂无文章