java学习笔记:集合框架

Collection接口:
	子接口:
		List,Set
	常用的api方法:
		增
		删
		改
		查
		注意:每个方法来源于哪个父类
	迭代器:
		Iterator:
		Iterable:
		增强for循环
	比较器:
		当存储某些元素的时候,需要对集合中的元素进行排序,此时需要比较器
		内部比较器:Comparable
		外部比较器:Comparator
	泛型:
		泛型类
		泛型接口
		泛型方法
	数据结构:
		数组:
		链表:
		哈希表:
		红黑树:

在这里插入图片描述

Collection

collecton:存放的是单一的值
特点:
    1.可以存放不同类型的数据
    2.当使用ArrayList子类的时候,初始化的长度是10,当长度不够的时候回自动进行扩容操作
api方法:
    增加数据的方法:
	add:要求传入的参数必须是Object对象,因此当写入基本数据类型的时候,会自动进行装箱、拆箱操作;
	addAll:添加另一个集合的元素到此集合中
	
	删除数据的方法:
	clear:清空集合内容
	remove:删除指定元素
	removeAll:删除所有元素
	
	查询数据的方法:
	contains:判断集合中是否包含指定的元素值
	containsAll:判断集合中是否包含另一个集合
	retainAll:判断集合中是否包含另一个集合中所有元素
	isEmpty,size
	
	集合转数组的操作:
    toArray:将集合转换成数组
	

vector

*      1、Vector也是List接口的一个子类实现
*      2、Vector跟ArrayList一样,底层都是使用数组进行实现的
*      3、面试经常问区别:
*          (1)ArrayList是线程不安全的,效率高,Vector是线程安全的效率低
*          (2)ArrayList在进行扩容的时候,是扩容1.5倍,Vector扩容的时候扩容原来的2倍

iterator

*   所有的集合类都默认实现了Iterable的接口,实现此接口意味着具备了增强for循环的能力,也就是for-each
*      增强for循环本质上使用的也是iterator的功能
*      方法:
*               iterator()
*               foreach()
*   在iterator的方法中,要求返回一个Iterator的接口子类实例对象
*       此接口中包含了
*               hasNext():返回boolean类型
*               next()
*
*   在使用iterator进行迭代的过程中如果删除其中的某个元素会报错,并发操作异常,因此
*       如果遍历的同时需要修改元素,建议使用listIterator(),
*   ListIterator迭代器提供了向前和向后两种遍历的方式
*       始终是通过cursor和lastret的指针来获取元素值及向下的遍历索引
*       当使用向前遍历的时候必须要保证指针在迭代器的结果,否则无法获取结果值
*   ListIterator的remove方法,可以在删除一个元素后使指针后移,不会造成并发操作失误的错误。
* */

List 和Set

*   List:存放的是单一值
*       特点:
*           1、可以存放不同类型的数据,而数组只能存放固定类型的数据
*           2、当使用arraylist子类实现的时候,初始化的长度是10,当长度不够的时候会自动进行扩容操作
*       api方法:
*           增加数据的方法
*           add:要求必须传入的参数是Object对象,因此当写入基本数据类型的时候,包含了自动拆箱和自动装箱的过程
*           addAll:添加另一个集合的元素到此集合中
*
*           删除数据的方法
*           clear:只是清空集合中的元素,但是此集合对象并没有被回收
*           remove:删除指定元素
*           removeAll:删除集合元素
*
*           查询数据的方法
*           contains:判断集合中是否包含指定的元素值
*           containsAll:判断此集合中是否包含另一个集合
*           isEmpty:判断集合是否等于空
*           retainAll:若集合中拥有另一个集合的所有元素,返回true,否则返回false
*           size:返回当前集合的大小
*
*           //集合转数组的操作
*           toArray:将集合转换成数组
*   1、set中存放的是无序,唯一的数据
*   2、set不可以通过下标获取对应位置的元素的值,因为无序的特点
*   3、使用treeset底层的实现是treemap,利用红黑树来进行实现
*   4、设置元素的时候,如果是自定义对象,会查找对象中的equals和hashcode的方法,如果没有,比较的是地址
*   5、树中的元素是要默认进行排序操作的,如果是基本数据类型,自动比较,如果是引用类型的话,需要自定义比较器
*       比较器分类:
*         内部比较器
*               定义在元素的类中,通过实现comparable接口来进行实现
*         外部比较器
*               定义在当前类中,通过实现comparator接口来实现,但是要将该比较器传递到集合中
*         注意:外部比较器可以定义成一个工具类,此时所有需要比较的规则如果一致的话,可以复用,而
*               内部比较器只有在存储当前对象的时候才可以使用
*               如果两者同时存在,使用外部比较器
*               当使用比较器的时候,不会调用equals方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种广泛使用的编程语言,有简单、面向对象、跨平台等特点。下面是Java学习的一些重要知识点和学习笔记: 1. Java基础: - 数据类型:Java提供了多种数据类型,包括基本数据类型和引用数据类型。 - 控制流程:学习如何使用条件语句(if-else、switch)、循环语句(for、while)等控制程序的流程。 - 数组:了解如何声明、初始化和操作数组。 - 方法:学习如何定义和调用方法,以及方法的参数和返回值。 - 类和对象:理解类和对象的概念,学习如何定义类、创建对象和使用类的成员变量和方法。 - 继承和多态:掌握继承和多态的概念,了解如何使用继承创建子类,并实现方法的重写和多态的应用。 2. 面向对象编程: - 封装:学习如何使用访问修饰符(public、private、protected)来控制类的成员的访问权限。 - 继承:了解继承的概念和作用,学习如何使用extends关键字创建子类。 - 多态:理解多态的概念和实现方式,学习如何使用父类引用指向子类对象,实现方法的动态绑定。 3. 异常处理: - 异常的分类:了解异常的分类(Checked Exception和Unchecked Exception)和常见的异常类型。 - 异常处理机制:学习如何使用try-catch语句捕获和处理异常,以及使用throws关键字声明方法可能抛出的异常。 4. 输入输出: - 文件操作:学习如何读写文件,包括使用File类、字节流和字符流等。 - 序列化:了解对象的序列化和反序列化,学习如何将对象保存到文件或网络中。 5. 集合框架: - 学习Java提供的集合框架,包括List、Set、Map等常用的集合类,以及它们的特点和用法。 6. 多线程编程: - 学习如何创建和管理线程,了解线程同步和线程间通信的方法。 7. 数据库连接: - 学习如何使用Java连接数据库,执行SQL语句,进行数据的增删改查操作。 以上是Java学习的一些重要知识点和学习笔记,希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值