java集合-Collection

前言
本文主要对最近学的java集合-Collection内容进行总结。
正文
一、Collection接口
定义在java.util包中,整个java类集中保存单值的最大操作父类接口,里边每次操作的时候都只能保存一个对象的数据。
1、接口定义:

public interface Collection <E> extends Iterable <E>

2、常用方法:
在这里插入图片描述
注:此接口的全部子类或子接口将全部继承以上接口中的方法。开发中一般不会直接使用Collection接口,使用其操作的子接口List和Set。
二、List接口
1、接口定义:

public interface List <E> extends Collection<E>

2、除Collection方法外,还扩展了一些方法如下:
在这里插入图片描述
当了解了List接口,该如何使用呢?因此需要找到接口的实现类:ArrayList、Vector、LinkedList。

—> ArrayList
1、定义:

public class ArrayList <E> extends AbstractList<E>

2、方法add()、remove()
Demo演示:
在这里插入图片描述
—>Vector
1、定义:

public class Vector <E> extends AbstractList<E>

2、方法
此类与ArrayList一样,都是AbstractList的子类,都是按照List接口的子类实现就可以。
初始化:
在这里插入图片描述

ArrayList和Vector的区别
在这里插入图片描述

—>LinkedList
1、定义:

public class LinkedList <E> extends AbstractSequentialList<E>

2、方法
此类继承了AbstractList,是List的子类,但此类也是Queue接口的子类,定义了如下方法:
在这里插入图片描述
Demo演示:
在这里插入图片描述
三、Set接口
与List接口最大的区别在于,Set接口里的内容是不允许重复的。Set接口并没有对Collection接口进行扩充,因此没有List接口中定义的get(int index)方法,无法使用循环进行输出。此接口中常用的有两个子类:HashSet、TreeSet
1、散列存放 HashSet
1)HashSet里边的内容是无序存放的。
在这里插入图片描述
2)HashSet本身是无序存放,那如何进其内容循环输出?
在Collection接口中定义了将集合变为对象数组进行输出的方法如下:
Demo:
在这里插入图片描述
以上操作已经指定了操作的泛型类型,因此由泛型所指定的类型变为指定的数组方法如下:
T [] toArray(T[] a)
Demo:
在这里插入图片描述
3)不能存放重复元素
Demo:
在这里插入图片描述
2、排序的子类TreeSet
1)定义:

public class TreeSet<E> extends AbstractSet<E>

2)增加元素实现排序
Demo:
在这里插入图片描述
3)排序的说明
定义一个Person类,向TreeSet集合添加若干个Person对象
在这里插入图片描述
提示:Person类不能向Comparable接口转型,因此想要实现排序,必须在Person类中实现Comparable接口。
Demo:
在这里插入图片描述
当有相同age的两个对象时,此方法会认为是同一对象,则必须修改Person类,假设年龄相等的话,按字符串进行排序。
Demo:
在这里插入图片描述
—>关于重复元素
判断两个对象是否相等,使用equals()方法
传送门【java中Object类的总结】添加链接描述
四、集合的输出
了解了集合的基本操作后,对集合进行输出,有以下几种方法,但是可以记住以下原则:”只要是碰到集合,输出的时候就用Iterator“。
1、Iterator 迭代输出
1)基本原理:不断判断是否有下一个元素,有的话直接输出。
2)要使用此接口,则必须使用Collection接口,在Collection接口中定义了一个iterator()方法,可以用于为Iterator接口进行实例化操作。
在这里插入图片描述
在这里插入图片描述
Demo演示:
在这里插入图片描述
注意:在进行迭代输出,想要删除元素,要使用Iterator()中的remove方法,不能使用集合中的remove方法。
Demo:
在这里插入图片描述
2、ListIterator 双向输出
Iterator只能进行由前向后的单向输出,想要进行输出,需要使用LIstIterator,依靠List接口进行实例化。
Demo:
在这里插入图片描述
3、foreach
可以用来输出数组的内容,也可以输出集合的内容
Demo:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值