第六章 工具包

第六章 工具包
 一,集合
  1,定义:集合是将许多元素组合成一个单元的容器对象
  2,可用于存储/检索/操作/传输/聚合数据
 二,集合框架
  1,定义:用于表示操作集合的体系结构
  2,集合框架应该包含
   (1)接口:表示集合的抽象数据类型,使用接口,允许集合独立于其表示的细节进行操作
   (2)实现:集合接口的具体实现,包含可重用的数据结构
   (3)算法:对集合执行搜索/排序等操作,是可以重用的数据结构
 三,小知识点
  1,Iterable接口
   (1)java.lang.Iterable
   (2)可以看到这个接口是java.lang包下的,在java.lang的这个包内的接口是不用report的可以直接用
   (3)Iterable接口,实现了此接口类的对象,支持Foreach循环语句
   (4)在java8之后,添加基于函数式编程的foreach()方法
   (5)Iterable接口不属于java集合框架
  2,Collection(集合)接口
   (1)java.util.Collection
   (2)一个集合,表示一组被称为元素的对象
   (3)Collection接口,用于描述,最具通用性的集合。因此,也包含了最具通用性集合的操作方法
   (4)Collection接口继承自Iterable接口,所以集合类型均支持foreach循环语句
  3,概念图
在这里插入图片描述
   (1)Iterable接口并不是集合
   (2)核心集合接口(Collection),包含了多种不同类型的集合(List)(Queue)(Set)
   (3)以及多种不同数据结构的实现类(图片中黄色的都是实现类)
  4,集合内的基本操作

boolean add(E e)						     //向集合添加元素,如调用更改了集合返回true,否则就返回false
boolean addAll(Collection <?extends E> c)    //可以向集合中添加一个集合或者集合内的具体集合类型
boolean remove(Object o)					 //在集合中移除指定元素,移除后在集合中被移除了,内存中依旧存在
boolean removeAll(Object <? extends E> c)	 //从集合移除包含指定的集合
void clear() 								 //移除集合内的所有元素
boolean contains(Object o) 					 //判断集合内是否包含指定的元素
boolean containsAll(Collection<?extends E> c)//判断是否包含指定集合
boolean isempty()							 //判断集合中是否包含元素
int size()									 //集合长度
T[] toArray(T[] a) 							 //将集合转为指定类型的数组
Iterator<E>iterator() 						 //获取迭代器

  5,泛型
   (1)定义:泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型
   (2)本质:参数化类型,也就是说所操作的数据类型被指定为一个参数
   (3)解释:我们有一个玻璃杯(集合)不关心里面装的是什么,但是执行者需要知道装的是什么。
   (4)使用泛型的原因:集合并不关系元素的具体类型,因此设计使用泛型
 四,List集合接口
  1,位置:java.util.List
  2,定义:List集合,存放有序的,允许包含重复元素的集合。
  3,方法:

//从Collection继承的方法
void add(int index,E element)  //插入一个元素在index的位置,后面的元素顺序移动
E set(int index, E element)    //将在index位置的那个元素替换成后面的元素
E get(int index) 			   //获取index位置的元素
E remove(int index)			   //移除index位置的元素

  4,List 集合接口实现常用实现类,即不同的数据结构
   (1)java.util.ArrayList类,基于对象数组数据结构的实现
   (2)java.util.LinkedList类,基于双向链表数据结构的实现
   (3)注意:具体区别、使用场景、性能,基于功能进行选择
  5,例子
   (1)例子1,定义List集合,并且插入一个元素

import java.util.ArrayList;

import java.util.List;

public class Test{
    public static void main(String[] args) {
        
        List<String> strings = new ArrayList<>();
        //第一个<>确定了List中应该放的元素类型,应该是字符串类型
        //第二个<>没有放,因为在java 7 之后的版本后面不写相当于直接找前面的类型
        //这个List集合的实现就是依赖于数组实现的
        strings.add("java"); //向List集合中加入字符串java
        strings.add(12); //这个地方会报错,因为要加入的元素和之前泛型内定义的不一致
    }
}

    (2)基于集合进行操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值