`
cectsky
  • 浏览: 45725 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

【java】java.util.Map接口学习

阅读更多

真是信息爆炸,现在的学习笔记都不知道该写在哪个blog上了,日!

刚开完会,学习下Map接口吧。先看看AbstractMap吧,之所以JDK都是Map下面继承abstract class就是因为可以定义一些通用约定,比如equals的自反性,对称性....对于这些学术概念我头疼啊,吗的。先写一点吧,改天详细搞搞Map的具体实现类的一些方法,内部数据结构等,red-black,大学的时候就发现这些都是浮云啊!

public abstract class AbstractMap implements Map {
    /**
     * protected,哥喜欢(*@ο@*) 哇~
     */
    protected AbstractMap() {
    }

    // override Object的equals
    public boolean equals(Object o) {
	if (o == this) return true;

	if (!(o instanceof Map)) return false;
	Map t = (Map) o;   //上面的判断很重要,否则会抛ClassCastException的
	if (t.size() != size()) return false;

//开始循环比较Entry中的数据了,我一般会主要想到这样的逻辑比较,前面的判断不错
        try {
            Iterator i = entrySet().iterator();
            while (i.hasNext()) {
                Entry e = (Entry) i.next();
                Object key = e.getKey();
                Object value = e.getValue();
                if (value == null) {
                    if (!(t.get(key)==null && t.containsKey(key)))
                        return false;
                } else {
                    if (!value.equals(t.get(key)))
                        return false;
                }
            }
        } catch(ClassCastException unused)   {
            return false;
        } catch(NullPointerException unused) {
            return false;
        }

	return true;
    }
    }
}

 

 

分享到:
评论

相关推荐

    无法解析类型 java.util.Map$Entry。从必需的 .class 文件间接引用了它

    这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家

    Java中的`java.util.stream.Collectors.toMap()`方法有什么作用

    在Java中,java.util.stream.Collectors.toMap()方法是一个非常实用的工具,它允许我们将流(Stream)中的元素收集到一个Map中。这个方法是Collectors类中的一个静态方法,它实现了Collector接口,用于在流的终止...

    java并发工具包 java.util.concurrent中文版用户指南pdf

    1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...

    java.util.Date到Json日期

    ### Java.util.Date到JSON日期转换详解 在Java中处理日期并将其转换为JSON格式是常见的需求,尤其是在进行网络传输或存储操作时。本篇文章将详细介绍如何将`java.util.Date`对象转换为符合特定格式的JSON字符串,...

    Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf

    java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...

    java.util.ConcurrentModificationException 解决方法

    java.util.ConcurrentModificationException 解决方法 在使用iterator.hasNext()操作迭代器的时候,如果此时迭代的对象发生改变,比如插入了新数据,或者有数据被删除。 则使用会报以下异常: Java.util....

    JAVA SCM供应链项目代码

    import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import mmb.rec.sys.easyui.EasyuiComBoBoxBean...

    java.util包

    1. 集合框架:Java.util包是Java集合框架的基础,包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。这些集合类为存储和操作对象提供了灵活的方式。例如,ArrayList实现了...

    java类源码-lambda:学习java.util,java.util.function,java.util.stream下面的源码,只要上

    这次我们将会深入学习 `java.util`、`java.util.function` 和 `java.util.stream` 这三个包下的源码,来理解这些新特性的实现原理和设计思想。 首先,Lambda 表达式是函数式编程的核心概念,它提供了一种简洁的方式...

    出现java.util.ConcurrentModificationException 问题及解决办法

    在Java编程中,`java.util.ConcurrentModificationException` 是一个常见的运行时异常,通常发生在尝试并发修改集合时。这个异常的产生是由于集合类(如HashMap)的非线程安全特性,当你在一个线程中使用迭代器遍历...

    spring4.0 API

    java.util.HashMap,V> (implements java.lang.Cloneable, java.util.Map,V>, java.io.Serializable) java.util.LinkedHashMap,V> (implements java.util.Map,V>) org.springframework.core.annotation....

    java.util包总结

    Java.util包是Java标准库中的核心包之一,它包含了大量用于日常编程的工具类和接口。这个包在Java 2版本中得到了显著增强,引入了许多重要的数据结构和算法,为Java程序员提供了更丰富的功能。 首先,Java.util包中...

    Java调用百度人脸对比接口进行人脸(图片)对比

    前三步和人脸检测代码一样 ...第四步 Token和工具类准备完毕,写人脸对比代码 2张对比图片 FaceMatch类 ...import java.util.Map; public class FaceMatch{ /** * 重要提示代码中所需工具类 * FileUtil,Ba

    Java API接口详述.rar

    4. `java.util.List`, `Set` 和 `Map`: 这些接口定义了集合框架的核心接口,提供数据存储和操作的统一标准。 类则是Java程序的基本构造块,它们通过关键字`class`定义。Java API中包含大量内置类,如: 1. `java....

    android-retrostreams,Android Studio 3.0 Desugar工具链Java 9 java.util.stream API的后台端口,派生自.zip

    "android-retrostreams"项目就是这样一个解决方案,它为Android平台提供了Java 9中的`java.util.stream` API支持。这个项目是基于`streamsupport`库的一个分支,旨在解决在Android Studio 3.0及更高版本中使用Java 9...

    Java并发工具包java.util.concurrent用户指南中英文对照阅读版

    本资源包含两个 pdf 文档,一本根据 Jakob Jenkov 最新博客 (http://tutorials.jenkov.com/java-util-concurrent/index.html) 整理的 java_util_concurrent_user_guide_en.pdf,一个中文翻译的 java_util_concurrent...

    在JSTL EL中处理java.util.Map,及嵌套List的情况

    当forEach 的items属性中的表达式的值是java.util.Map时,则var中命名的变量的类型就是 java.util.Map.Entry。这时var=entry的话,用表达式${entry.key}取得键名。 用表达${entry.value}得到每个entry的值。这是...

Global site tag (gtag.js) - Google Analytics