`
街角转身
  • 浏览: 5299 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java Array续

阅读更多

1.当向ArrayList添加一个对象时,实际上就是将该对象放置到ArrayList底层所维护的数组中,当向LinkedList中添加一个对象时,实际上LinkedList内部生成一个Entry对象,该Entry对象的结构为:

Entry

{

    Entery previous;

 

    Object element;

 

    Entery next;

 

}

其中的Object类型的元素element就是我们向LinkedList中添加的元素,然后Entry又构造好了向前与向后的引用previous next ,最后将生成的这个Entry对象加入到链表当中, LinkedList中所维护的是一个个的Entry对象。

 

 

2.关于Object 类的equals方法的特点

 

a.自反性:x.equals(x)应该返回true;

b.对称性:x.equals(y)为true,那么y.equals(x)也为true;

c 传递性:x.equals(y) 为true 并且y.equals(z)为true。那么x.equals(z)也应该为true。

d。一致性:x.equals(y)的第一次调用为true,那么x.equals(y)的第二次,第三次,第n次调用也应该为true,前提条件是在比较之间没有修改x也没有修改y。

e。对于非空引用x,x.equals(null)返回false。

 

3.关于Object类的hashCode()方法的特点:

 

a 在java应用的一次执行过程中,对于同一个对象的hashCode方法的多次调用,他们应该返回同样的值。(前提是该对象的信息没有发生变化)/

b 对于两个对象来说,如果使用euqals方法比较返回true,那么这两个对象的hashCode值一定相同的。

c。对于两个对象来说,如果使用equals方法比较放回false, 那么这两个对象的hashCode值不要求一定相同(object类的hashCode值表示的是对象的地址)/

 

4.当使用HashSet时,hashCode()方法就会得到调用,判断已经存储在集合中的对象的hash code值是否与增加的对象的hash code 值一致,如果不一致,直接加进去,如果一致,再进行equals方法的比较,equals方法如果返回true,表示对象已经加入进去了,就不会在增加新的对象了,否则加进去。

 

 5.如果我们重写equals方法,那么我们也要重写hashCode方法,反之亦然。

 

6.Map(映射):Map的keySet()方法会返回key的集合,因为Map的键是不能重复的,因此keySet()方法的返回类型是Set,而Map的值是可以重复的,因此values()方法的返回类型是Colletion,可以容纳重复的元素。

 

 

 

 

分享到:
评论

相关推荐

    java上传图片完整deom

    4. **Byte Array Input/Output Stream**:在处理图片数据时,可能会将其转换为字节数组。`ByteArrayInputStream`和`ByteArrayOutputStream`可以方便地在字节数组和流之间进行转换。 5. **Base64编码**:有时,图片...

    java coding style

    ##### 4.4 续行 - **规则**:当一行代码过长时,应将其分为多行,并在下一行的开头使用四个空格进行缩进。 - **示例**: ```java String longExpression = "This is a very long string that needs to be split ...

    java范例开发大全源代码

    第1篇 Java编程基础  第1章 Java开发环境的搭建(教学视频:9分钟) 2  1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3  1.2.2 安装JDK 4  1.2.3 配置环境 5  1.2.4 测试JDK配置...

    java范例开发大全

    实例212 List、Set与Array之间的相互转换 375 实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的...

    Java范例开发大全 (源程序)

     实例212 List、Set与Array之间的相互转换 375  实例213 二分查找法的实现方法 377  实例214 模拟操作系统的进程调度 379  实例215 利用栈将字符串逆序输出 381  实例216 动态的数组链表 382  实例217 你...

    Java范例开发大全(全书源程序)

    实例212 List、Set与Array之间的相互转换 375 实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是...

    java范例开发大全(pdf&源码)

    实例212 List、Set与Array之间的相互转换 375 实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的...

    百度图片百度爬虫

    同时,为了防止下载中断,可能需要处理异常并实现断点续传。 最后,可能还需要考虑到一些反爬虫策略,比如设置合适的延时以避免频繁请求导致IP被封,使用User-Agent模拟浏览器行为,以及处理验证码和登录验证等情况...

    多文件和普通属性同时上传

    为了提高上传效率和用户体验,可以考虑使用分块上传、断点续传等技术。特别是大文件上传,分块上传能避免因网络问题导致的整个文件重传。此外,前端可以显示上传进度条,提升用户交互体验。 安全性方面,要确保对...

    ENVI的IDL二次开发教程

    4. **混合编程能力:** 可以与C/C++、Java、Python等语言进行混合编程,实现更复杂的功能需求。 5. **广泛的社区支持:** 拥有活跃的用户社区和丰富的第三方库资源,便于学习和解决问题。 #### 二、IDL的安装与使用...

Global site tag (gtag.js) - Google Analytics