2024年java基础笔记分享

java基础笔记分享集合框架 Collection 接口的常用方法 注意当一个集合存在相同元素时某些方法的调用注意点 Arrays asList forEach 方法 迭代器 遍历 删除集合元素 注意 当创建一个迭代器时 迭代器指向的是集合的 前一个元素 foreach 遍历 List 接口 java 基础笔记分享 ArrayList List 接口的主要实现类 线程不安全 故效率高 底层使用

大家好,我是讯享网,很高兴认识大家。



集合框架

Collection 接口的常用方法

讯享网

注意当一个集合存在相同元素时某些方法的调用
注意点:Arrays.asList()

 

forEach 方法

讯享网

迭代器

遍历

 

删除集合元素

 

注意:当创建一个迭代器时,迭代器指向的是集合的 “前一个元素”

foreach 遍历

 

List 接口

java基础笔记分享

ArrayList

List 接口的主要实现类,线程不安全,故效率高,底层使用 Object[] elementData 存储

LinkedList

底层使用双向链表,故插入删除效率高

Vector

线程安全,故效率低,底层使用 Object[] elementData 存储

List 接口中的常用方法

 

Set 接口

HashSet

Set 接口的主要实现类,线程不安全,可以存储 null 值(一般会重写 hashcode 方法和 equals 方法)

LinkedHashSet

HashSet 的子类:遍历其内部数据时,可以按照添加的顺序遍历

TreeSet

放入的数据必须同一类的对象,可以按照添加对象的指定属性进行排序,底层用红黑树实现
自然排序:对象需要实现 Comparable 接口并实现 compareTo 方法
定制排序

 

添加元素的过程:以HashSet为例:

我们向HashSet中添加元素a,首先调用元素a所在类的hashCode()方法,计算元素a的哈希值, 此哈希值接着通过某种算法计算出在HashSet底层数组中的存放位置(即为:索引位置),判断数组此位置上是否已经有元素:

  • 如果此位置上没有其他元素,则元素a添加成功。 —>情况1
  • 如果此位置上有其他元素b(或以链表形式存在的多个元素),则比较元素a与元素b的hash值:
    ----如果hash值不相同,则元素a添加成功。—>情况2
    ----如果hash值相同,进而需要调用元素a所在类的equals()方法:
    -------- equals()返回true,元素a添加失败
    --------equals()返回false,则元素a添加成功。—>情况3
  • 对于添加成功的情况2和情况3而言:元素a 与已经存在指定索引位置上数据以链表的方式存储。
    jdk 7 :元素a放到数组中,指向原来的元素。
    jdk 8 :原来的元素在数组中,指向元素a
    总结:七上八下
    HashSet底层:数组+链表的结构。

Map 接口

Map 接口的常用方法

 

HashMap

作为 Map 接口的主要实现类。线程不安全,效率高。key 和 value 可以为 null。

LinkedHashMap

HashMap 的子类:遍历其内部数据时,可以按照添加的顺序遍历

TreeMap

放入的数据必须同一类的对象,可以按照添加对象的指定属性进行排序,底层用红黑树实现
自然排序:对象需要实现 Comparable 接口并实现 compareTo 方法
定制排序

 

Hashtable

作为古老的实现类。线程安全,效率低。key 和 value 不可以为 null。

Properties

Hashtable 的子类。常用来处理配置文件。key 和 value 都是 String 类型。

Map 的遍历

 

 

Conllections 工具类

尚硅谷 java 笔记 尚硅谷java基础笔记_数组

尚硅谷 java 笔记 尚硅谷java基础笔记_尚硅谷 java 笔记_02

 

因此可以使用这种方式创建 dest

 
小讯
上一篇 2024-12-25 23:51
下一篇 2024-12-30 10:54

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/2096.html