JavaJava – 容器

 

本章学习,记住: 1 1 3
6(一摆设图、一个接近、三独知识点、六个接口)

 

 

第一内容:

Java 1

 

 

 

 

 

 

容器的定义:

Java 2

 

 

 

 

 

 

容器 API:

Java 3

 

Java 4

 

 

 

 

 

 

Collection 接口:

Java 5

 

 

Java 6

 

 

重写 equals 方法,你应当吗再次写 hashCode 方法,这是为程序执行效率着想!!!

Java 7

 

增补说明:

Java中equals()和hashCode()有一个契约:

  1. 一经个别只对象等的话,它们的hash
    code必须等;
    (当目标被用做索引时,在比其是否当时,就会先行判断hashCode(),如果hashCode()都无抵,就未会见错过调整用equals(),相当给:(
    A.hashCode()==B.hashCode() ) && ( A.equals(B)
    ),有梗塞效果!!!

  2. 不过只要简单个目标的hash
    code相等的话,这点儿单对象非自然当。

1、自定义一个 hashCode() 方法是一个比较累的转业,与其不如用现成的,上图被实现 hashCode 方法就是为此之 String 类已经实现了底,具体怎么落实我未失管她,Sun 公司曾帮自己形容好了。

2、有人以咨询了,Que:不是一度发生 equals 方法了吧?为什么还要更写 hashCode 方法吧?Ans:若 equals 中较的格比较多要比较的算法比较麻烦,这时用 equals 一个一个的比,效率会坏没有,若先直接拿她 hashCode来发于会大增较的快(附述一点:sun规定等于的对象应当拥有相当的hash
codes,这是前提,如达到图红色标记!所以说而hashCode都未等于就从不比较equals的必备了)。

3、有人以问了,Que:在啊时用这hashCode 方法为?Ans:当是类似的之一对象吃视作索引(也就算是key)的时候,一旦涉及到元素于,Java运行时系统会先行调用hashCode方法开展比,只有在hashCode相等的情形下,再错过调动用equlas方法开展较,所以这么做效率大大的升级换代。

4、上图例子中另行写java.lang.Object类的hashCode方法后,是因此之Name类的firstName成员变量的hashCode作为hashCode返回(也就算说我现确定Name 类所new出来的实例对象中判断是否当的先决条件为:它们的firstName的hashCode一样),也可以规定多独(如果您想只要拿firstName和lastName的hashCode都一律就是相等的先决条件,这时返回值可以使return firstName.hashCode() +
lastName.hashCode();多独依此类推,把其的hashCode全部相加,一并返回)。

5、所以发生诸如此类的下结论:当类的靶子做也索引时,需要比相近的蝇头独实例是否一致:调用hashCode方法的先行级要比调用equlas方法高,编程时,hashCode相等一般也先决条件(先决条件:这里就要考虑返哪些成员变量的hashCode之和了),只有在先决条件满足的图景下Java运行时系统才会调用equals方法,所以说equals的可比原则应该比hashCode的可比原则更严格(至少要hashCode一样)。

 

 

 

 

 

 

Iterator 接口:

Java 8

 

 

Java 9

 

 

Java 10

 

 

 

 

 

 

 

 

 

Java 11

 

 

Java 12

 

 

Java 13

 

 

 

 

 

 

 

 

Java 14

 

 

Java 15

 

 

Java 16

 

 

 

 

 

 

 

 

Java 17

 

 

Java 18

 

 

Java 19

 

加说明:这里的copy方法是以src容器中之要素下标0开始交替到dest容器中(dest容器中相应下标的位置的素会为遮住),而未是外加在dest之后;所有必须dest.size() >
src.size(),否则抛来IndexOutOfBoundsException例外

 

Java 20

 

 

 

 

 

 

 

 

Java 21

 

 

Java 22

 

 

Java 23

 

 

 

 

 

 

 

Java 24

 

 

 

 

 

 

 

 

Java 25

 

 map的key如果是字符型,识别大小写

Java 26

 

 

Java 27

 

 

Java 28

 

 

Map 示例程序:统计不同之单词,并记录同一单词出现的次数

Java 29

 

 

 

 

 

 

 

 

 

Java 30

 

 

Java 31

 

 

 

 

 

 

 

 

 

Java 32

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章