JAVA学习笔记- - - day 5

简介: # 集合(重点)## Collection![{9338085D-1CFD-7A5B-85FA-5BBCFAED66DC}](java_8.assets/{9338085D-1CFD-7A5B-85FA-5BBCFAED66DC}.jpg)**Collection中常用的方法**![image-20220519143734065](java_8.assets/image-20220519143734065.png)### 迭代器​ 用来循环遍历出集合中的所有元素​ Iterator<E> iterator()``` Iterat

集合(重点)

Collection

{9338085D-1CFD-7A5B-85FA-5BBCFAED66DC}

Collection中常用的方法

image-20220519143734065

迭代器

   用来循环遍历出集合中的所有元素

    Iterator<E> iterator()

       Iterator iterator = list.iterator();

       while (iterator.hasNext()) {

           System.out.println(iterator.next());

       }

List

ArrayList(重要)

有序数组集合,且允许有重复的元素,使用者可以精确的控制每个元素的插入位置,并且可以快速访问。特点:有序(存储与取出顺序一致),且元素可以重复。

不是线程安全的。没有加锁(synchronized)

LinkedList

LinkedList(底层数据结构属于双链表,查询慢,增删快)

不是线程安全的。

LinkedList是链表为原理,添加、删除的性能高,查询的性能不高

没有加锁(synchronized)

Vector

和ArrayList功能相似,底层也是数组,最主要的区别在于vector是线程安全的,缺点是效率比较低

是线程安全的

有加锁(synchronized)

泛型(重要)

我们在项目中使用集合基本都是存储同一种的数据类型,既然我们在集合中存储同一种数据类型,那我们事先就知道这个集合要存储什么数据类型,我们就能预先的指定要存储的类型

自定义泛型(重要)

语法:

 class/interface 类名/接口名 <T>{

}

T只是泛型的一个标准,使用什么字符都可以,但是都要大写,不要使用特殊字符,建议通T。

Set

HashSet

  特点:

          元素的唯一性

          无序性

          允许存在一个null

          不是线程安全的

唯一性原理:

      对象的hash值和equals都相等,那么就是重复的对象。


LinkedHashSet

说明: 具有可预知迭代顺序的Set接口的哈希表和链表实现,此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表,此链接列表定义了迭代顺序,即按照将元素插入到set中的顺序(插入顺序)进行迭代

    特点:

             元素的唯一性

             有序的

             允许null存在一个

             不是线程安全的

LinkedHashSet和HashSet对比就是多了一个顺序,应用的不多。

TreeSet

           TreeSet可以支持自定义排序,如果TreeSet所存储的对象的类没有实现Comparable接口就会报错ClassCastException。所以我们如果想要使用TreeSet来对自定义的对象来排序,必须实现Comparable接口。

       特点:

            元素唯一性

            可自定义排序

            不允许null存在

            不是线程安全的

  1. 先说比较 : 类如果要比较规则,要实现Comparable接口

工具类

Arrays(数组工具类)

数组的工具类,这里的方法都是静态的

1.对任意数组排序    Arrays.sort(); // 正序

2.数组转成List   Arrays.asList(不定参数)

Map(重点)

map是一个有键值对的集合

List集合

index 0 1 2
Student1 Student2 Student3


Map是一个键值对集合

key 3101 3102 3103
value Student1 Student2 Student3

1.我们可以通过key来获取对应的值,将键值映射到值的对象。

2.一个map的key是不能重复的。

3.键只能有一个空值,值可以有多个空值

4.map也是无序的

Map<K,V> K和V表示泛型,map的k和V可以是任何类型(不能是基本的数据类型)

Map和Collection集合的区别

1.Map集合是键值对的集合,Collection是单一出现的数据集合。

2.Map的键是唯一的,而Collection的子接口中,List集合是可以重复的,set是唯一的。

常用的方法:

    put(key,value): 存数据

    get(key); 根据key获取值

    remove(key): 删除值

    keySet():获取key集合

HashMap(重要)

1.HashMap是map的实现类

2.允许多个null值和一个null键

3.没有顺序

4.不是线程安全的

TreeMap

1.可以按照key来做排序(该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparable进行排序)

2.key不能为null,key不能重复,值可以有多个null

3.不是线程安全的

4.有顺序

Hashtable

1.HashTable是map的实现类

2.不允许有任何的null键和null值

3.是线程安全的

4.无顺序

LinkedHashMap

1.是map的实现类

2.允许一个null键和多个null值

3.是有顺序的(按照添加的顺序)

4.不是线程安全的

相关文章
|
2月前
|
监控 负载均衡 Dubbo
|
3月前
|
前端开发 Java 数据安全/隐私保护
Java学习—GUI编程学习笔记
Java学习—GUI编程学习笔记
|
6月前
|
设计模式 存储 Java
【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)
55 0
|
6月前
|
Java 编译器
【Java学习笔记】 对象和类
【Java学习笔记】 对象和类
|
6月前
|
设计模式 存储 Java
【设计模式——学习笔记】23种设计模式——迭代器模式Iterator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——迭代器模式Iterator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
28 0
|
4月前
|
存储 缓存 安全
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
《java核心技术36讲》学习笔记-------杨晓峰(极客时间)
56 0
|
1月前
|
存储 前端开发 Java
java学习笔记
java学习笔记
61 0
|
3月前
|
XML Java 数据格式
Spring5学习笔记——狂神说Java
Spring5学习笔记——狂神说Java
|
4月前
|
数据采集 缓存 分布式计算
java并发编程实践——王宝令(极客时间)学习笔记
java并发编程实践——王宝令(极客时间)学习笔记
37 0
|
4月前
|
Java 数据库连接 数据库
Java大数据开发工程师__Spring学习笔记(待更新)
Java大数据开发工程师__Spring学习笔记(待更新)
28 1