Java一课一得

ArrayList集合

集合
◆面向对象语言对事物的体现都是以对象的形式,所以为了方便对
多个对象的操作,就需要对对象进行存储,集合就是存储对象最
常用的一-种方式。Java所有的集合类都位于java.util包下。
◆集合与数组的区别
数组和集合类同是容器,数组虽然也可以存储对象,但其长度是
固定的,而集合的长度是可变的。
●数组只能存储同种数据类型的数据,包含基本数据类型和对象引
用类型,而集合只能存储对象,并且可以存储不同类型的对象。

集合框架

Collection是单列集合类的顶层接口,Collection存储的是一-组
不唯一、无序的对象。 JDK不提供直接继承自Collection的类,
它提供了更具体的子接口的实现,如Set和List。
●List接口:存储的数据是不唯一、有序 (插入顺序)的对象
●Set接口 :存储的数据是唯一、无序的对象
◆Map是双列集合类的顶层接口, Map中存储的是一组键值对象
( key-value), 提供了key到value的映射,键是不可以重复的。
●Map接口的实现类: HashMap实现类、TreeMap实现类
集合中的接口及类都是泛型的。没加泛型,默认取出是object
类型,如果要调用对象里的属性,需要进行强转。
![Collection是单列集合类的顶层接口,Collection存储的是一-组
不唯一、无序的对象。 JDK不提供直接继承自Collection的类,
它提供了更具体的子接口的实现,如Set和List。
●List接口:存储的数据是不唯一、有序 (插入顺序)的对象
●Set接口 :存储的数据是唯一、无序的对象
◆Map是双列集合类的顶层接口, Map中存储的是一组键值对象
( key-value), 提供了key到value的映射,键是不可以重复的。
●Map接口的实现类: HashMap实现类、TreeMap实现类
集合中的接口及类都是泛型的。没加泛型,默认取出是object
类型,如果要调用对象里的属性,需要进行强转。]

在这里插入图片描述

Iterator接口Collection接口List接口

Iterator接口
Iterator接口表示对集合进行迭代的迭代器。除了Map集合之外,
都能通过Iterator来对集合中的元素进行遍历。
◆Iterator常用方法
●hasNext() :判断是否还有下一个元素,有就返回true
●next() :返回要访问的下一元素
●remove() :将迭代器新返回的元素删除
◆使用迭代器逐一 访问Collection中的每一个元素

Iterator it=collection.iterator(); //获得一 个迭代器 while(it.hasNext()){
Object obj=it.next(); //得到下一个元素 }

Coliection接口:

Collection接口提供了添加元素、删除元素以及-些其他方法,由于List
接口和Set接口等都继承了Collection接口,因此这些方法对List集合和
Set集合都是通用的。

List接口:
List接口直接继承自Collection接口。List集 合代表一个元素有序并且可重
复的集合,集合中每个元素都有对应的顺序索引。
◆List接口新增的常用方法

( 1 ) public Object get(int index)–根据下标返回列表中的元素。
( 2 ) public Object add(int index, Object element)–在列表的指定位置插入
指定元素,将当前处于该位置的元素(如果有的话)和所有后续元素向右移动。
( 3 ) public Object set(int index,Object element)–用指定元素替换列表中 指定位置的元素。
( 4 ) public Object remove(intindex)–移除列表中指定位置的元素。

ArrayList类

ArrayList是List接口的直接实现类,实现了可变的数组功能。

优点和缺点

◆优点

●允许包含所有元素,包括NULL ,使用ArrayList可以根据索引位置对集合进行快速地随机访问。

◆缺点

●向指定的索引位置插入对象或删除对象的速度较慢,因为向索引位置插入对象时会将指定索引|位置及之后的所有对象相应向后移动一位。

ArrayList构造方法

●Arraylist() :构造了一个空的列表。

> ArrayList<String> list=new ArrayList<String>();

从JDK7开始,语句可简化为:

ArrayList<Integer> list=new ArrayList<>();

ArrayList(int initialCapacity)构造了一个指定大小但内容为空
的列表。initialCapacity参数就是初始容量大小。

> ArrayList<Integer> list=new ArrayList<Integer>(7);

注意: ArrayList类只支持对象类型,不支持基本数据类型,如需要则使用对应的包装类。

◆增加元素到列表中

●boolean add(Element e)–增加指定元素到列表尾部。
举例1

●void add(int index, Element e)–增加指定元素到列表指定
举例2

◆删除列表中的元素

●E remove(int index)–删除列表中指定位置的元素, E为对应的元 素类型。
E remove(int index)

●boolean remove(Object0)-删除列表中首次出现的指定元素 (如果存在)。
boolean remove(Object0)

●void clear()–从列表中删除所有元素。
void clear()

列表元素的遍历

1.使用普通for循环:

List<String> list = new ArrayList<>();
// 假设列表中包含字符串元素

for (int i = 0; i < list.size(); i++) {
    String element = list.get(i);
    System.out.println(element);
}

2.使用增强for循环(foreach循环):

List<String> list = new ArrayList<>();
// 假设列表中包含字符串元素

for (String element : list) {
    System.out.println(element);
}

3.使用迭代器(Iterator)进行遍历:

List<String> list = new ArrayList<>();
// 假设列表中包含字符串元素

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String element = iterator.next();
    System.out.println(element);
}

两种创建列表方式的区别

ArrayList<String> list1=new ArrayList<String>();
List<String> list2=new ArrayList<String>();

◆上面两者相比, list1比list2的可调用的方法多。因为List是
ArrayList的父类,即通过接口引用引用实例化对象的时候,只能
调用List自己的方法,不能调用ArrayList本身包含的方法。
◆通过父类弓|用子类对象,只能调用父类自己的方法,不能调用子
类的方法。
感兴趣的同学点击这里了解更多大神讲解

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值