集合

容器
和数组的区别:

  1. 数组可以存基本数据类型(值),也可以存引用数据类型(地址值);长度不可变;空间连续,查改快。

  2. 集合只能存引用数据类型(对象的引用),存储基本数据类型会自动装箱成包装类对象;长度可变;空间不连续,增删快。

集合

数组与集合
A.数组既可以存引用数据类型数据 也可以基本数据类型数据 集合只能存引用数据类型数据
B.数组长度是固定 集合的长度是可变
分类: 单列集合与双列集合
Collection
A.常用的方法
B.遍历方式
a.将集合转换数组 b.使用迭代器 c.使用增强for循环
List
特点:有序 有索引 可以重复 可以设置null值
方法:
void add(int index, E element) 在指定的位置增加元素
E get(int index) 获取指定索引的元素
E remove(int index) 根据索引来删除元素
E set(int index, E element) 根据索引来修改元素
ArrayList
特点:
A.以数组的方式来进行存储 查询快 增删慢
B.实现不是同步的 在多线程中是不安全
C.初始容量为 10
遍历方式: 使用普通的for循环
数据结构-栈: 先进后出
数据结构-队列 先进先出

java.util.Collection 是一个集合接口

java.util.Collections 是一个包装类

Collections.sort排序

Collection

单列集合,是一个接口

List

有序,可重复,是一个接口,是Collection接口的一个子接口,是一个有序的集合。

List接口常用方法:

  1. add添加元素

  2. get获取指定元素位置

  3. indexOf返回首次出现下标

  4. remove移出

  5. set替换指定元素

  6. subList 返回区间子集和

ArrayList

最基础的集合类,是List的一个实现类,可以实现数组大小的可变,可以很方便的进行增加和删减数组内元素的操作。1.5倍扩容。copyOf
增删慢,改查快

LinkedList

底层双向链表,双端队列,效率高
线程不安全
prev前一个,next后一个
增删快,改查慢

Vector

线程安全
无参10,2倍扩容

线程安全

Set集合

无序,元素不可重复

HashSet集合

HashSet() 构造出⼀个新的集合, 底层数组默认的初始容量是16(扩容⼀倍),加载因⼦是0.75
LinkedHashSet兼顾了linked的有序性和HashSet的元素唯⼀性,但是性能没有HashSet好。

TreeSet集合

Queue队列

Map集合

双列集合,key-value

HashMap

Map接口的实现

允许null

key不重复

数组 + 链表

非线程安全容器

2倍扩容

containKey判断是否有此key

remove删除

clear清空

isEmpty是否为空

LinkedHashMap

TreeMap

Hashtable

线程安全

iterator 迭代器

用于访问集合的方法,查看集合中存储的元素,迭代(遍历),ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。
Iterator主要有三个方法:

  1. hasNext:没有指针下移操作,只是判断是否存在下一个元素

  2. next:指针下移,返回该指针所指向的元素

  3. remove:删除当前指针所指向的元素,一般和next方法一起用,这时候的作用就是删除next方法返回的元素

  4. Iterator只能从前往后遍历,而且每个迭代器只能用一次

  5. ListIterator可以从后往前遍历,

listIterator.hasNext()
listIterator.hasPrevious()

排序接口

Java中的排序是由Comparable和Comparator这两个接口来提供的。

Comparable(接口)

可被排序的,代表本身支持排序功能

类的自然排序,compareTo方法(默认从小到大)

可以看做是内部比较器

Comparator比较器(接口)

比较器,它可以作为一个参数传递到Collections.sort和Arrays.sort方法来指定某个类对象的排序方式

可以看做是外部比较器

两者同时存在的情况下,Comparator优先级高

Comparable和Compator

  • Comparable可以称之为内部比较器,而Compator可以称之为外部比较器。

  • Comparable 是一个排序接口,

  • Comparator 是一个比较器接口,

compareTo() 方法

  • 该方法用于两个相同数据类型的比较;

  • 返回值

    • 如果指定的数与参数相等返回 0

    • 如果指定的数小于参数返回 -1

    • 如果指定的数大于参数返回 1

get/set方法

  • 成员变量可读可写控制

Collections类

是一个操作集合的算法类,只能操作Collection接口下的集合(Map集合不能使用该类)

sort自然排序

swap交换两元素的位置

reverse反转集合

posted @ 2023-01-17 21:29  Ritchie^._.^  阅读(48)  评论(0)    收藏  举报