1.java 集合的介绍
Java中的集合是一种用于存储和操作一组对象的数据结构,它提供了比数组更高的灵活性和更多的操作方法。Java集合类存放在java.util包中,是一个用来存放对象的容器。
Java是目前世界上最流行的计算机编程语言之一,全球有大量的Java设备和开发者在使用它。Java集合框架是Java语言中的一个核心部分,它为开发者提供了处理各种数据结构问题的强大工具,从而使得在Java中处理集合类型的对象变得更加简单和高效。
2.List集合
在Java编程语言中,List是一种被广泛使用的集合类型,它提供了一种灵活的方式来存储和操作有序的元素序列。List是Java集合框架(Java Collections Framework)的一部分,是一个接口,提供了一系列标准的方法来对元素进行增加、删除、检索和遍历操作。
注意⚠️
List存储一组不唯一有序的对象
A.List的核心特性
a.有序性:List中的元素按照插入的顺序进行存储,可以通过元素的索引(位置)来访问它们。
b.元素唯一性:List允许添加重复的元素,即两个或更多的元素可以有相同的值。
c.动态扩展:列表的大小不是固定的,它可以根据需要动态地增加或减少元素。
B.List的实现类ArrayList
基于动态数组实现,默认初始容量是10,动态数组允许元素的随机访问。
c.List的基本操作
add(E e):将指定的元素添加到列表的末尾。
add(int index, E element):在列表的指定位置插入指定元素。
remove(Object o):移除列表中首次出现的指定元素(如果存在)。
remove(int index):移除列表中指定位置的元素。
get(int index):返回列表中指定位置的元素。
set(int index, E element):用指定元素替换列表中指定位置的元素。
size():返回列表中的元素个数。
isEmpty():如果列表不包含元素,则返回true。
contains(Object o):如果列表包含指定元素,则返回true。
clear():移除列表中的所有元素。
D.List的迭代
使用传统的for循环通过索引访问。
使用增强的for-each循环进行迭代。
使用迭代器(Iterator)。
E.List的高级用法
除了基本操作,List还提供了一系列高级操作,如排序、查找和转换等。
F.ArrayLaist类和LinkedList类的共同特点:
a.可以容纳所有类型的元素对象包括NULL 元素可以重复 元素按顺序储存。
b.ArrayList类特点 底层是数组 优点基于数组实现读取操作效率高 缺点不合适频繁进行插入和删除操作因为每次执行该类操作都需要频繁移动其中的元素 。c.LinkedList类特点 由双向链表实现任意一个节点都可以方便的访问它的前驱节点和后继节点。
优点增加删除操作只需修改链表节点指针不需进行频繁的移动。
缺点遍历效率低。
排序:可以使用Collections.sort方法对List进行排序。
查找:可以使用Collections.binarySearch方法在已排序的List中快速查找元素。
转换:可以使用toArray方法将List转换为数组,或者使用stream方法进行更复杂的数据转换和操作。
3.Set集合
Set继承自Collection接口,没有特殊的方法
注意⚠️
Set存储一组唯一无序的对象
A.Set集合的特点
Set中不包含重复元素(只能存储一个null)
不维护存储顺序
Set没有索引,不能通过索引访问元素,所以不能使用普通for循环遍历
只能通过元素本身来
B.Set集合的典型实现 可以实现对无序不重复数据的存储具有很好的存取和查找性能 C.特征 不允许存储重复的元素 没有索引没有包含索引的方法不能使用索引遍历 无序集合存储元素和取出元素的顺序可能不一致 D.执行添加操作时会将新添加的对象依次和集合中现有的元素进行比较 通过执行 注意⚠️注意‼️ 不能使用索引进行遍历 不能fo循环用迭代器
4.Map集合
interface Map<K,V> K:键的类型;V:值的类型
A.Map集合的基本功能
B.Map集合的特点
双列集合,一个键对应一个值
键不可以重复,值可以重复
B.Map接口专门处理键值映射数据的存储 根据键(key)实现对值(value)的操作 key不要求有序不允许重复 key一般使用String Value不要求有序但允许重复 C.Hashtable 线程安全 不允许有null的键和值 效率较低 D.HashMap 线程不安全 允许有null的键和值 效率较高 E.创建迭代器对象 lterator it=stulist.iterator(): while(it.hasNext()){ System.out.print(it.next()); }
今日总结完毕😉