真是信息爆炸,现在的学习笔记都不知道该写在哪个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;
}
}
}
分享到:
相关推荐
这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家
在Java中,java.util.stream.Collectors.toMap()方法是一个非常实用的工具,它允许我们将流(Stream)中的元素收集到一个Map中。这个方法是Collectors类中的一个静态方法,它实现了Collector接口,用于在流的终止...
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
### Java.util.Date到JSON日期转换详解 在Java中处理日期并将其转换为JSON格式是常见的需求,尤其是在进行网络传输或存储操作时。本篇文章将详细介绍如何将`java.util.Date`对象转换为符合特定格式的JSON字符串,...
java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
java.util.ConcurrentModificationException 解决方法 在使用iterator.hasNext()操作迭代器的时候,如果此时迭代的对象发生改变,比如插入了新数据,或者有数据被删除。 则使用会报以下异常: Java.util....
import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import mmb.rec.sys.easyui.EasyuiComBoBoxBean...
1. 集合框架:Java.util包是Java集合框架的基础,包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。这些集合类为存储和操作对象提供了灵活的方式。例如,ArrayList实现了...
这次我们将会深入学习 `java.util`、`java.util.function` 和 `java.util.stream` 这三个包下的源码,来理解这些新特性的实现原理和设计思想。 首先,Lambda 表达式是函数式编程的核心概念,它提供了一种简洁的方式...
在Java编程中,`java.util.ConcurrentModificationException` 是一个常见的运行时异常,通常发生在尝试并发修改集合时。这个异常的产生是由于集合类(如HashMap)的非线程安全特性,当你在一个线程中使用迭代器遍历...
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标准库中的核心包之一,它包含了大量用于日常编程的工具类和接口。这个包在Java 2版本中得到了显著增强,引入了许多重要的数据结构和算法,为Java程序员提供了更丰富的功能。 首先,Java.util包中...
前三步和人脸检测代码一样 ...第四步 Token和工具类准备完毕,写人脸对比代码 2张对比图片 FaceMatch类 ...import java.util.Map; public class FaceMatch{ /** * 重要提示代码中所需工具类 * FileUtil,Ba
4. `java.util.List`, `Set` 和 `Map`: 这些接口定义了集合框架的核心接口,提供数据存储和操作的统一标准。 类则是Java程序的基本构造块,它们通过关键字`class`定义。Java API中包含大量内置类,如: 1. `java....
"android-retrostreams"项目就是这样一个解决方案,它为Android平台提供了Java 9中的`java.util.stream` API支持。这个项目是基于`streamsupport`库的一个分支,旨在解决在Android Studio 3.0及更高版本中使用Java 9...
本资源包含两个 pdf 文档,一本根据 Jakob Jenkov 最新博客 (http://tutorials.jenkov.com/java-util-concurrent/index.html) 整理的 java_util_concurrent_user_guide_en.pdf,一个中文翻译的 java_util_concurrent...
当forEach 的items属性中的表达式的值是java.util.Map时,则var中命名的变量的类型就是 java.util.Map.Entry。这时var=entry的话,用表达式${entry.key}取得键名。 用表达${entry.value}得到每个entry的值。这是...