java软件实训Day6

一、集合

Java集合是Java编程语言中用于存储和操作对象的重要工具。

  1. 集合框架:Java集合框架提供了统一的视图来处理对象集合。它包括两种类型的集合:List(有序集合)和Set(无序集合)。每种类型都有多种实现。
  2. 接口:Java集合框架主要通过几个重要的接口来定义集合的行为,如CollectionListSetQueue等。
  3. 实现类:这些接口有多个实现类,如ArrayListLinkedListHashSetLinkedHashSetPriorityQueue等。
  4. 泛型:Java集合框架支持泛型,这使得你可以指定集合中对象的类型,从而避免了运行时的类型转换错误。
  5. 迭代器:Java集合框架提供了一种遍历集合的方法,即使用迭代器。
  6. 并发修改异常:当使用迭代器遍历集合时,如果集合在迭代过程中被修改(如添加或删除元素),则抛出ConcurrentModificationException异常。
  7. 排序和搜索:Java集合框架提供了多种排序和搜索的方法,如Collections.sort()Collections.binarySearch()
  8. 集合操作:Java集合框架提供了许多用于操作集合的静态方法,如Collection.contains()Collection.remove()Collection.addAll()等。
  9. 流(Stream):从Java 8开始,Java引入了流的概念,这使得集合操作更加简洁和强大。流可以进行各种复杂的转换和操作,如过滤、映射、排序等。
  10. 并发集合:Java集合框架也提供了并发集合,如ConcurrentHashMapCopyOnWriteArrayList等,这些集合类特别适合多线程环境。

二、集合框架

java软件实训Day6_第1张图片

三、Collection集合(重点)

boolean add(E e)   -     向集合中添加对象

boolean contains(Object o)      -      判断是否包含指定对象

boolean remove(Object o)        -      从集合中删除对象

void clear()      -     清除集合

int size()      -        返回包含对象的个数

boolean isEpmty;      -    判断是否为空      

Object[] toArray();     -        将集合转换成数组
将数组转换成集合 ?
Iterator iterator() 遍历集合中的元素
Iterator对象称为迭代器,主要用于遍历collection集合中的元素
boolean haaNext() 如果仍有元素可以迭代,则返回 true.
E next () 返回迭代的下一个元素。
注意:集合对象每次调用iterator()方法都得到一个全新的迭代器对急,默认游标都在集合的第一个元素之前。
使用foreach循环遍历集合元素 -JDK1.5提供,可以迭代访问Collection和数组
遍历时不需要获取Collection或数组的长度,也不需要使用索引访问
本质上,底层也是调用iterator 格式:
for(要遍历的元素类型 遍历后自定义元素名称:要遍历的结构名称){System.ou.println (遍历后自定义元素名称);

}

三、List集合(重点)
基本概念
java.util.List集合是Collection集合的子集合,该集合中允许有重复的元素并且有先后放入次序。该集合的主要实现类有:ArrayList类、LinkedList类、Stack类、Vector类。其中ArrayList类的底层是采用动态数组进行数据管理的,支持下标访问,增删元素不方便。其中LinkedList类的底层是采用双向链表进行数据管理的,访问不方便,增删元素方便。其中Stack类的底层是采用动态数组进行数据管理。该类主要用于描述一种具有后进先出特征的数据结构,叫做栈(last in first out LIFO)。其中Vector类的底层是采用动态数组进行数据管理的,该类与ArrayList类相比属于线程安全的类,效率比较低。
常用的方法
void add (int index, E element) 向集合中指定位置添加元素
boolean addA11(int index, Collectionc)
E get (int index) 从集合中获取指定位置元素        -      向集合中添加所有元素
E set (int index, E element)     -        修改指定位置的元素
E remove (int index)        -         删除指定位置的元素
List subList (int fromIndex, int toIndex);       -          获取子List,前闭后开
注意:subList获取的List与原List占有相同的存储空间,对子List的操作会影响到原List.

四、泛型机制
基本概念
通常情况下集合中可以存放不同类型的对象,是因为将所有对象都看做Object类型放入的,因此从集合中取出元素时也是Object类型,为了表达该元素真实的数据类型,则需要强制类型转换,而强制类型转换可能会引发类型转换异常。为了避免上述错误的发生,从jdk1.5开始增加泛型机制,也就<数据类型>的方式来明确要求该集合中可以存放的元素类型,若放入其它类型的元素则编译报错,如:

List lt1 =  new LinkList();

java软件实训Day6_第2张图片

五、Queue集合

基本概念
java.util.Queue集合是Collection集合的子集合,与List集合属于平级关系。该集合的主要用于描述具有先进先出特征的数据结构,叫做队列(first in first out FIFO) 该集合的主要实现类是LinkedList类,因为该类在增删方面比较有优势。
常用的方法
boolean add(E e)                       -              将指定的元素插入此队列(如果立即可行且不会违反容量限制),在成功时返回 true, 如果当前没有可用的空间,则拋出 I1legalStateException.
E element()           -                 获取,但是不移除此队列的头。
boolean offer(E e)          -               将指定的元素插入此队列(如果立即可行且不会违反容量限制),当使用有容量限制的队列时,此方法通常要优于 add (E),后者可能无法插入元素,而只是抛出一个异常。
E peek()              -            获取但不移除此队列的头;如果此队列为空,则返回 nul1.E pol1() -获取并移除此队列的头,如果此队列为空,则返回 nu11.E remove() - 获取并移除此队列的头。

java软件实训Day6_第3张图片

六、Set集合(重点)
基本概念
java.util.Set集合是Collection集合的子集合,与List集合平级。该集合中元素没有先后放入次序,并且不允许重复。该集合的主要实现类是:HashSet类 和TreeSet类。其中HashSet类的底层是采用哈希表进行数据管理的。其中TreeSet类的底层是采用二叉树进行数据管理的。
常用的方法
参考Collection集合中的方法即可!

七、Map集合(重点)
基本概念
java.util.Map集合中存取元素的基本单位是:单对元素,其中类型参数如下:
K-此映射所维护的键(Key)的类型,相当于目录。V-映射值(Value)的类型,相当于内容。
该集合中key是不允许重复的,而且一个key只能对应一个value。该集合的主要实现类有:HashMap类和TreeMap类。

V put (K cey, V value) - 将Key-Value对 存入Map,若集合中已经包含该Key, 则替换该Key所对应的Value 
返回值为该Key原来所对应的Value,若没有则返回nul1
V get (Object key) - 返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回 nul1.boolean containaKey(Object key) - 如果此映射包含对于指定键的映射关系,则返回 true.
boolean containaValue (Object value) 一 如果此映射将一个或多个键映射到指定值,则返回 true.
v remove(Object key) - 从此映射中移除指定键的映射关系 (如果存在)。
Map集合的遍历方式
方式一:自动调用toString方法
方式二:调用keySet方法获取Map集合中所有的key
方式三:调用entrySet方法获取Map集合中所有的键值对
Map集合是面向查询优化的数据结构,在大数据量情况下有着优良的查询性能,经常用于根据key检索value的业务场景。

八、漫天的飞雪,璀璨的星光,少年希望通过努力让自己与更好的自己在未来不断一遍遍重逢。

你可能感兴趣的:(java,开发语言)