java 基础笔记--Map

在Java的世界里,万物皆为对象,那么Map是一个接口!哈哈

举个例子:

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

其中User类

package com.map;

public class User {

    private int age;
    private String name;
    public int getAge() {
        return age;
    }

    public User(){
        super();
    }

    /**
     *
     * @param age
     * @param name
     */
    public User(int age,String name){
        super();
        this.age=age;
        this.name=name;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public int hashCode() {
        System.out.println("运行了hashCode");
        final int prime = 31;
        int result = 1;
        result = prime * result + age;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        User other = (User) obj;
        if (age != other.age)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
    }

}

运行

package com.map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class MapTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        User user=new User(10,"小明");
        User user1=new User(12,"小里");
        Map<User,String> map=new HashMap<User, String>();
        map.put(user, "小明");
        map.put(user1, "kk");

        Iterator<User> iter=map.keySet().iterator();
        while(iter.hasNext()){
            User user2=iter.next();
            String name=map.get(user2);
        }

    }

}

得到输出

运行了hashCode
运行了hashCode

HashMap--hash 就是每个对象都拥有的一个方法,

Map默认长度是16,通过key的hash值得到它所在的位置。如果值相同则放在之前值的后面,是一个链表结构

利用debug模式,选择“查看”(watch)会得到

Map有很多个实现类,ConcurrentHashMap 、Hashtable、HashMap、

参考:http://blog.csdn.net/renfufei/article/details/17287729

时间: 2024-10-12 17:05:05

java 基础笔记--Map的相关文章

Java基础笔记——map

1 package map_show; 2 /* 3 * Map--properties 4 */ 5 6 7 8 /* 9 * Map接口:具有映射关系"key-value对"的集合 ---类似于高中的"函数" 10 * 11 * ------Map 方法: 12 * 13 ? 添加.删除操作: 14 ---> Object put(Object key,Object value) 将指定的值与此映射中的指定键关联 15 void putAll(Map t)

【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-import.html#1.2.values方法的使用: Java基础笔记 – 枚举类型的使用介绍和静态导入 本文由arthinking发表于4年前 | Java基础 | 暂无评论 |  被围观 8,332 views+ 1.枚举(Enum):1.1.枚举类型中的两个静态方法:1.2.values方法的使用:

[Java基础笔记]数组

Java基础笔记 定义数组: int[] numbers = new int[100]; //方法一 double[] num = new double[10]; int[][] a = new int[2][5]; 通过new创建的数组,元素默认值为0(0.0) int[] scores = {5,4,33,12,46}; //方法二 int[][] a = { //位数不足,自动补0 {5,3,2,1,6}, {10,12,14,15}, }; 数组特性:存储的都是同类型数据:长度定义后不可

java 基础笔记 基本数据类型对象包装类

基本数据类型对象包装类: 为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作. 用于描述该对象的类就称为基本数据类型对象包装类. 基本数据类型 包装类 byte Byte short Short int Integer long Long float Float double Double char   Character boolean Boolean 该包装对象主要用于基本类型和字符串之间的转换. 基本类型-->字符串 1.基本类型数据+"&quo

Java基础笔记 – Annotation注解的介绍和使用 自定义注解

Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Annotation的工作原理:2.@Override注解:3.@Deprecated注解:4.@SuppressWarnings注解:5.自定义注解:5.1.添加变量:5.2.添加默认值:5.3.多变量使用枚举:5.4.数组变量:6.设置注解的作用范围:6.1.在自定义注解中的使用例子:7.使用反射读取R

黑马程序员----java基础笔记中(毕向东)

<p>------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! -------</p><p> </p><p>笔记一共记录了毕向东的java基础的25天课程,分上.中.下</p><p>本片为中篇,涵盖11-20天课程</p&

java 基础笔记 第一波~

Java 基础知识  首次复习. 1.作用域 其实就是这个变量可以起作用的范围. 2.有时候碰到的 value ,其实就一个变量名 ,别想的太复杂. 3.Java 局部变量,实例变量 ,类变量(静态变量)区别 1,局部变量 是类的方法中的变量: 2.实例变量 类中独立于方法之外的变量 不过没有static修饰 也叫对象变量 3.类变量(静态变量) 类中独立于方法之外的变量 用static修饰 也叫静态变量 伪代码说明 Public class Variable{ Static int allcl

Java基础笔记——学习Java前的准备

接下来的一个月我会和大家分享我学JavaSE时候的笔记,分享是最好的老师,希望我的笔记能给大家一些帮助. 我会每天发一篇文章,这些都是我学Java时候的精华,当然,每一篇笔记我都会精心修改,使得知识点更加清晰,更加通俗易懂. Java必备知识点汇总 软件:系统软件.应用软件 交互方式: 图形化界面GUI=Graphical User Interface 命令行方式CLI=Command Line Interface Java由SUN=Stanford University Network公司19

JAVA基础笔记(很实用)继承-多态-抽象类-接口-异常-集合-IO-线程-Socket

第七章:Java继承 一.继承的概念 1.一个父类派生出一个子类的机制称为继承. 2.承是重用程序代码的有力手段,当多个类之间存在相同的属性和方法时,可以从这些类中抽象出父类. 3.们只需要在父类中定义这些属性和方法,而子类无须重新定义这些属性和方法,直接从父类继承即可. 4.通过继承,子类就会自动的拥有在父类中定义的属性和方法. 5.两个或多个类的成员中存在一部分相同的情况,通过继承机制,可以利用现有的类来创建新的类. 6.子类不但拥有父类的成员,还可以定义新的成员. 7.可以提高软件的可重用