`
929118967
  • 浏览: 21798 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
博客专栏
Fcebf22e-9505-38db-b3f2-65fdcc3fd6a5
java开发的深入浅出
浏览量:7124
文章分类
社区版块
存档分类
最新评论

java笔记之集合

 
阅读更多

前言

集合在数学意义上的概念是,对个数据放置在一起而建立起来的模型,这些数据类型可以不同;
在软件中的定义,一堆数据放置在一个空间中存储,将整个存储空间称为集合。
本文主要介绍collection接口下的List接口和Set接口,以及迭代器Iterator。

正文

Collection接口

1.Collection 层次结构 中的根接口。
JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 SetList)实现。
2.collection的主要子接口和实现类:

3.Collection的常用API:

List接口

list接口的实现类:
ArrayList和LinkedList

1.ArrayList

1)特性
1))是顺序表,方便查找
2))每次扩容,集合的长度在原来长度上增加一半。
3))集合默认的空间为10.
4))原理:变长的数组
5))ArrayList 是非线程安全的
6))在集合的遍历过程中,不能使用ArrayList本身的方法删除和添加元素。
除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException
7))ArrayList 的常用API:

2.LinkedList

LinkedList的特点
1.底层使用List 接口的链接列表实现。方便删除和插入。
2.默认长度为0.
3.LinkedList是非线程安全的。
4.在集合的遍历过程中,不能使用ArrayList本身的方法删除和添加元素。
除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException

迭代器

迭代器的特点

1.Iterator接口,本身是一种快速遍历集合的算法。
2.集合可以调用iterator方法获取迭代器。
3.迭代器是一个带有游标的线性表,用来记录结合的元素的地址。
4.迭代器与集合的关系草图:

1)相关代码片
<script src="https://code.csdn.net/snippets/275521.js" type="text/javascript"></script>
2)对应的草图


5.Iterator的常用API:

补充:List的实现类 Vector

Vector,Vector 类可以实现可增长的对象数组。
Vector的特性
1.顺序表,方便查找
2.每次扩容在原长度上增加一倍。
3.默认大小为10
4.Vector是线程安全。

Set接口

特点类似于数学集合,无顺序,不可重复,与List的特点相反。他只能有一个null值。
在这里讲讲他的实现类:HashSet,和TreeSet。

HashSet

基于哈希表的 Map 接口的实现.
特点
1.采用hash算法的Set,相当于hashMap的Key
2.默认的扔了为16,加载因子75%。
3.HashSet非线程安全。
4.内部原理:HashMap的key.
5.此实现不是同步的。
6.在集合的遍历过程中,不能使用ArrayList本身的方法删除和添加元素。
除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException
常用的API:

TreeSet

特点:
1.默认的空间为0
2.采用二叉树算法实现的
3.原理为TreeMap的Key
4.在集合的遍历过程中,不能使用ArrayList本身的方法删除和添加元素。
除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException
5.按照自然排序存放元素

总结

分享到:
评论

相关推荐

    java 集合部分笔记

    【Java集合】 Java集合框架是Java编程语言中用于存储和操作对象的工具,它提供了多种数据结构,如列表、集、映射等,以适应不同的数据处理需求。集合类通常位于`java.util`包下,是Java程序员必备的知识点。 1. **...

    集合框架学习笔记

    这篇学习笔记将深入探讨Java集合框架的基础概念、主要类库以及常见应用场景。 首先,Java集合框架分为两种基本类型:List(列表)和Set(集)。List接口代表有序的集合,允许重复元素,如ArrayList和LinkedList;而...

    宋红康java笔记.rar

    【宋红康java笔记】是一份综合性的Java学习资料,由知名编程教育者宋红康编撰。这份压缩包文件包含了大量的Java编程知识点,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言的核心概念与高级特性。以下是根据...

    java集合框架笔记

    List set ArraryList Map java集合框架笔记 基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用

    java笔记 java笔记

    与之相对的是面向过程编程,它侧重于函数和过程。 ##### 6.2 对象的概念 对象是类的实例,包含了该类的所有属性和方法。 ##### 6.3 成员变量和局部变量 - **成员变量**:定义在类中的变量。 - **局部变量**:...

    java笔记集合

    这份“java笔记集合”涵盖了从基础到进阶的各种主题,旨在帮助初学者快速掌握Java编程的核心概念和技术。以下是对这些笔记内容的详细解读: 1. **Java基础**:这部分笔记可能包括Java语法基础,如变量、数据类型、...

    非常好的java笔记适合初学者

    这份"非常好的java笔记"无疑是初学者踏入这个领域的宝贵资源。笔记由培训班的专业老师编写,内容详细且全面,旨在帮助初学者系统地学习和理解Java的基础知识。 首先,Java基础部分会涵盖变量、数据类型、运算符、...

    Java集合框架学习笔记

    Java集合框架是Java编程语言中一个至关重要的组成部分,它...了解并熟练掌握这个框架,是任何Java开发者必备的技能之一。通过深入学习和实践,我们可以更好地利用这些工具来解决复杂的问题,提高代码的可维护性和性能。

    Java中的集合框架Markdown全系列笔记

    内容概要:压缩包中含有Java中的集合框架Markdown全系列笔记,包括配图 能学到什么:在学习Java的朋友,可以从本文教程中学习到Java中最常用的集合框架,HashMap,ArrayList,HashSet等,同时又基于代码有一定层次的...

    大佬的java笔记

    专业的Java笔记可能会涉及这些内容,帮助学习者掌握Java的最新发展。 遗憾的是,由于【部分内容】部分不包含实际的笔记内容,无法进一步提供具体的编程示例和深入的解释。如果要学习Java,最好的方式是从学习Java的...

    狂神说Java笔记资料

    《狂神说Java笔记资料》是一份全面涵盖Java开发基础知识的文档集,旨在帮助学习者系统地掌握Java编程。这份笔记包含多个章节,每个章节都深入讲解了一个特定的主题,覆盖了从初学者到进阶开发者必备的知识点。 1. *...

    java笔记.zip

    2020-4-6 java笔记 ---内部类 2020-4-6 java笔记 ---异常 2020-4-6 java笔记 --多线程 2020-4-8 java笔记 String类 2020-4-9 java 比较器 2020-4-10 java笔记 枚举类 2020-4-10 java 注解(Annotation) 2020-4-11 ...

    java学习笔记之集合详细

    在这个学习笔记中,我们将深入探讨集合的特点、集合与数组的区别、集合的主要接口和实现类,以及如何使用迭代器和各种方法来操作集合。 1. **集合特点**: - 集合仅用于存储对象,不同于数组可以存储基本数据类型...

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    java编程基础笔记(集合)

    Java编程基础笔记主要聚焦在集合框架上,这是Java编程中不可或缺的部分。集合框架是Java提供的一组接口和类,用于存储和操作数据。它包括两种主要类型:Collection和Map。 Collection是所有单值容器的超接口,其中...

    java全套笔记 来自狂神说java笔录.zip

    【Java笔记内容概览】 1. **基础语法**:涵盖变量、数据类型、运算符、流程控制(条件语句、循环语句)、数组、字符串等基础知识。 2. **面向对象**:讲解类、对象、封装、继承、多态等核心概念,以及构造函数、...

    java超强笔记

    随着对基础知识的掌握,笔记会进一步带你探索Java集合框架,包括数组列表、链表、队列、栈、映射等数据结构,以及它们在实际问题中的应用。此外,多线程编程也是Java的一大亮点,笔记会介绍线程的创建与同步机制,如...

    Java基础笔记之集合框架和泛型

    详细的介绍了集合框架的用法,及其语法规则,剖析了使用的使用注意事项,帮助更牢靠的掌握集合框架的知识及泛型内容。谢谢

    java学习笔记 传智博客java笔记

    详细的描述了java的基本知识,配合看java视频更好了。 笔记中有集合,泛型,线程,的详细案例,还有java.net的资料

Global site tag (gtag.js) - Google Analytics