Java核心(集合类1-概述、Collection 接口 、List 集合)

一、集合类概述

java.util 包中提供了一些集合类,这些集合类又被称为容器。集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本类型的数据,集合用来存放对象的引用,常用的集合有 List 集合、Set 集合和 Map 集合,其中 List 与 Set 继承了  Collection 接口,各接口还提供了不同的实现类。集合类的继承关系 :

二、Collection 接口

Collection 接口时层次结构中的根接口。构成 Collection 的单位称为元素。 Collection 接口通常不能直接使用,但该接口提供了添加元素、删除元素、管理数据的方法。由于 List 接口与 Set 接口都继承了 Collection 接口,因此这些方法对 List 集合与 Set 集合是通用的。

表 2.1 Collection 接口的常用方法
方法功能描述
add( E  e ) 将指定的对象添加到该集合中
remove( Object o )将指定的对象从该集合中移除
isEmpty() 返回 boolean 值,用于判断当前集合是否为空
iterator() 返回在此 Collection 的元素上进行迭代的迭代器。用于遍集合中的对象
size() 返回 int 型值,获取该集合中元素的个数

 

 

 

 

 

 

 

通常遍历集合,都是通过迭代器(Iterator)来实现的。 Collection 接口中的 iterator() 方法可返回在此 Collection 进行迭代的迭代器。

eg 2.1 在项目中创建类 Muster ,在主方法中实例化集合对象,并想集合中添加元素,最后将集合中的对象以 String 形式输出。

package com.CollectionDemo;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Muster {

	public static void main(String[] args) {
		Collection<String> list = new ArrayList<>();// 实例化集合对象
		list.add("a");// 向集合添加元素 a
		list.add("b");// 向集合添加元素 b
		list.add("c");// 向集合添加元素 c
		Iterator<String> iterator = list.iterator();// 创建迭代器
		while (iterator.hasNext()) {
			String string = (String) iterator.next();// 判断是否还有下一个元素
			System.out.println(string);// 获取集合中元素
		}
	}
}

运行结果为  :

a
b
c

ps :Iterator 的 next() 方法返回的是 Object 。

三、 List 集合

List 集合包括 List 接口以及 List 接口的所有实现类。 List 集合中的元素允许重复,各元素的顺序就是对象插入的顺序。类似 Java 数组,用户可通过使用索引(元素在集合中的位置)来访问集合中的元素。

3.1 List 接口

List 接口继承了 Collection 接口,因此包含 Collection 中的所有方法,此外, List 接口还定义了一下两个方法 :

( 1 ) :get(int index) :获取指定索引位置的元素  。

( 2 ) :set(int index , Object obj) :将集合中指定索引位置的对象修改为指定的对象  。

3.2 List 接口的实现类

List 接口的常用实现类有 ArrayList 与 LinkedList 。

( 1 ) :ArrayList 类实现了可变的数组,允许保存所有元素,包括 null ,并可以根据索引位置对集合进行快速的随机访问;缺点是向指定的索引位置插入对象或删除对象的速度较慢 。

( 2 ) :LinkedList 类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,需要向集合中插入,删除对象时,使用 LinkedList 类实现 List 集合的效率较高;但对象随机访问集合中的独享,使用 LinkedList 类实现 List 集合的效率较低。

使用 List 集合时通常声明为 List 类型,可通常不同的实现类来实例化集合。

eg  3.2-1 分别通过 ArrayList 、 LinkedList 类实例化 List 集合。

List<E> list = new ArrayList<>();
List<E> list2 = new LinkedList<>();

E 可以是合法的 Java 数据类型。例如,如果集合中的元素为字符串类型,那么 E 可以修改为 String 。

eg 3.2-1 在项目中创建 Gather ,在主方法中创建集合对象,通过 Math 类的 random() 方法随机获取集合中的某个元素,然后移除数组中索引位置是 “ 2 ” 的元素,最后遍历数组。

package com.CollectionDemo;

import java.util.ArrayList;
import java.util.List;

public class Gather {

	public static void main(String[] args) {
		List<String> list = new ArrayList<>();// 创建集合对象
		list.add("a");
		list.add("b");
		list.add("c");
		int i = (int) (Math.random() * (list.size() - 1));// 获得 0 ~ 2 之间的随机数
		System.out.println("随机获取数组中的元素:" + list.get(i));
		list.remove(2);// 将指定索引位置的元素从集合中移除
		System.out.println("将索引是'2'的严肃从数组移除后,数组中的元素是:");
		for (int j = 0; j < list.size(); j++) {// 循环遍历集合
			System.out.println(list.get(j));
		}
	}
}

运行结果为 :

随机获取数组中的元素:b
将索引是'2'的严肃从数组移除后,数组中的元素是:
a
b

ps :与数组想用,集合的索引也是从 0 开始 。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值