Java基础_集合类_接口

数据结构概念

1、数据结构三要素

  • 逻辑结构
    • 线性结构
      • 线性表
      • 队列
    • 非线性结构
      • 集合
  • 存储结构(物理结构)
    • 顺序存储
    • 链式存储
    • 索引存储
    • 散列存储(哈希存储)
  • 结构上的运算

2、线性表

n个类型相同数据类型元素的有限序列。

特点:

  • 相同数据类型
  • 序列(顺序性,元素之间存在顺序)
  • 有限

物理结构:

  • 顺序存储(数组)
  • 链式结构(链表)

容器

在Java中,数组、集合都是对多个数据进行存储及操作的,相当于数据的容器。【内存层面的存储】

1、数组缺点

数组在创建时:

  • 需要指定长度,长度确定不可更改。
  • 需要声明类型,只能存储该类型数据。

数组在非数组尾部删除、增加元素时,需要移动大量元素,以保证数组有序性,效率低。

数组中存储元素的个数是无法获取的。

数组只能表示有序、可重复的情况,对于不可重复/无序的情况无法满足。

2、集合

2.1、Java集合结构

在这里插入图片描述

2.2、Collection系列【接口】

在这里插入图片描述
父接口Iterable:
在这里插入图片描述
Collection接口

  • 辅助方法【判断、继承】:
    • contains(Object o)、containsAll(Collection<?> c)
    • equals(Object o)、hashCode()
    • isEmpty()
    • iterator():继承自Iterable
    • size()
    • toArray(),toArray(T[] a)
  • 处理操作:
    • add(E e),addAll(Collection<? extends E> c)
    • clear()、remove(Object o),removeAll(Collection<?> c)、retainAll(Collection<?> c)
  • JDK1.8引入【default】:
    • parallelStream()、stream()
    • removeIf(Predicate<? super E> filter)
    • spliterator():重写Iterable的spliterator()
    • toArray(IntFunction<T[]> generator)
  • 继承,未重写:forEach(Consumer<? super T> action)
2.2.1、List接口【可重复】

在这里插入图片描述
方法

  • JDK1.8引入:
    • 静态方法【不可重写】:
      • copyOf(Collection<? extends E> coll)
      • of()重载:返回一个不可修改的list
        • 空参
        • 参数E:1~10个、可变参数列表
    • 普通方法【可重写】:
      • replaceAll(UnaryOperator operator)
      • sort(Comparator<? super E> c)
      • 重写:spliterator()
      • 继承未重写:
        • Collection:parallelStream, removeIf, stream, toArray
        • Iterable:forEach
  • 处理操作:
    • add(E e),addAll(Collection<? extends E> c)、add(int index, E element),addAll(int index, Collection<? extends E> c)
    • clear()、remove(int index),remove(Object o)、removeAll(Collection<?> c)、retainAll(Collection<?> c)
    • get(int index)、indexOf(Object o),lastIndexOf(Object o)
    • set(int index, E element)
    • subList(int fromIndex, int toIndex)
  • 辅助操作:
    • contains(Object o),containsAll(Collection<?> c)
    • equals(Object o),hashCode()
    • isEmpty()
    • iterator()、listIterator(),listIterator(int index)
    • size()
    • toArray(),toArray(T[] a)

ListIterator接口
在这里插入图片描述
在这里插入图片描述

Iterator:
在这里插入图片描述
在这里插入图片描述

2.2.2、Set接口【不可重复】

在这里插入图片描述
方法

  • JDK1.8引入:
    • 静态方法【不可重写】:和List接口方法一致,区别就是of()方法返回一个不可修改的Set
    • 普通方法【可重写】:没有自己的default方法
      • 重写:spliterator()
      • 继承未重写:
        • Collection:parallelStream, removeIf, stream, toArray
        • Iterable:forEach
  • 处理操作:
    • add(E e),addAll(Collection<? extends E> c)
    • clear()、remove(Object o),removeAll(Collection<?> c),retainAll(Collection<?> c)
  • 辅助操作:
    • contains(Object o),containsAll(Collection<?> c)
    • equals(Object o),hashCode()
    • isEmpty()
    • iterator()
    • size()
    • toArray(),toArray(T[] a)

2.3、Map系列【接口】

Map接口:在这里插入图片描述
内容

  • 静态内部接口Entry<K, V>
  • 方法:
    • JDK1.8引入:
      • 静态方法【不可重写】:
        • copyOf(Map<? extends K,? extends V> map)
        • entry(K k, V v)
        • of()重载:
          • 空参
          • 1~10对(K, V)组合
        • ofEntries(Map.Entry<? extends K,? extends V>… entries)
      • 普通方法【可重写】:
        • compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction),
          computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction),computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
        • forEach(BiConsumer<? super K,? super V> action)
        • getOrDefault(Object key, V defaultValue)
        • merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
        • putIfAbsent(K key, V value)
        • remove(Object key, Object value)、replace(K key, V value),replace(K key, V oldValue, V newValue),replaceAll(BiFunction<? super K,? super V,? extends V> function)
    • 处理操作:
      • clear()、remove(Object key)
      • get(Object key)
      • put(K key, V value),putAll(Map<? extends K,? extends V> m)
      • keySet()、values()
    • 辅助操作:
      • containsKey(Object key),containsValue(Object value)
      • equals(Object o)【Object也是一个map】,hashCode()
      • isEmpty()
      • size()

3、继承结构

(1)接口:

在这里插入图片描述
(2)Collection实现类

在这里插入图片描述
(3)Map实现类

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值