集合--查漏补缺

再次整理了一下集合笔记,嘿嘿

List特点:有序,不唯一(可重复)

ArrayList实现了长度可变的数组,在内存中分配连续的空间。
    • 优点:遍历元素和随机访问元素的效率比较高
    • 缺点:添加和删除需要大量移动元素效率低,按照内容查询效率低
LinkedList采用链表存储方式。
    • 优点:插入、删除元素时效率比较高
    • 缺点:遍历和随机访问元素效率低下

Iterator接口

    • 所有的集合类均未提供相应的遍历方法,而是把遍历交给迭代器完成。迭代器为集合而生,专门实现集合遍历
Iterator方法
    • boolean hasNext():判断是否存在另一个可访问的元素
    • Object next():返回要访问的下一个元素
    • void remove():删除上次访问返回的对象
可以使用Iterator遍历的本质是什么?
    • 实现Iterable接口

ListIterator接口

在循环的过程中可以执行增删操作

1 ListIterator li=al.listIterator();
2 while(li.hasNext()){
3      Object obj=li.next();
4      if ("java2".equals(obj)) {
5             li.add("java9994");
6        }
7 }

set接口

HashSet:采用Hashtable哈希表存储结构

    • 优点:添加速度快,查询速度快,删除速度快
    • 缺点:无序

LinkedHashSet

    • 采用哈希表存储结构,同时使用链表维护次序
    • 有序(添加顺序)

TreeSet

    • 采用二叉树(红黑树)的存储结构
    • 优点:有序(排序后的升序)查询速度比List快 (按照内容查询)
    • 缺点:查询速度没有HashSet快
注★★★
❤HashSet和LinkedSet保证数据唯一的方法是先判断hashcode是否相同,如果相同则比较equals方法,
    如果不同则不用比较,装入的自定义对象要重写hashcode方法和equals方法才可以实现数据的唯一性

❤TreeSet保证数据唯一的方法是存入的数据类型必须需要实现Compareable接口

❤只有TreeSet的toString方法输出的事按照类型实现的有序输出的

Collections的两个sort方法:

1 static <T extends Comparable<? super T>> void sort(List<T> list) 
2                     根据元素的自然顺序 对指定列表按升序进行排序。 
3 static <T> void  sort(List<T> list, Comparator<? super T> c) 
4                     根据指定比较器产生的顺序对指定列表进行排序。 
一个参数的,集合中的数据类型要实现 Comparable接口
两个参数的是根据指定的排序方法,其中第二个参数是实现Comparator的类,重写的compare方法比较的是第一个参数的属性,第一个不用实现任何接口

Map接口

 

Map(接口)
    • 特点key-value映射
HashMap
    • Key无序 唯一(Set)
    • Value无序 不唯一(Collection)
LinkedHashMap
    • 有序的HashMap
TreeMap
    • 有序 速度没有hash快
问题:Set与Map有关系吗?
    • 采用了相同的数据结构,只用于map的key存储数据

HashMap和linkedHashMap的区别

    • 人们用的最多的是HashMap,在Map 中插入、删除和定位元素,HashMap 是最好的选择。如果需要输出的顺序和输入的相同,那么用LinkedHashMap 可以实现,它还可以按读取顺序来排列.
    • HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。
    • HashMap最多只允许一条记录的键为NULL,允许多条记录的值为NULL。
    • HashMap不支持线程同步,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致性。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力。
    • LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。

Collections工具类

类似于操作数组的Arrays工具类
    • Collections和Collection不同,前者是集合的操作类,后者是集合接口
    • Collections提供的静态方法
主要方法:
    • static boolean addAll(Collection<? super T> c, T... elements) 将所有指定元素添加到指定 collection 中。
    • static <T extends Comparable<? super T>> void sort(List list) 根据元素的自然顺序 对指定列表按升序进行排序。
    • static void sort(List list, Comparator<? super T> c) 根据指定比较器产生的顺序对指定列表进行排序。

    • static int binarySearch(List<? extends Comparable<? super T>> list, T key) 使用二分搜索法搜索指定列表,以获得指定对象。

    • static int binarySearch(List<? extends T> list, T key, Comparator<? super T> c) 使用二分搜索法搜索指定列表,以获得指定对象。

    • static void fill(List<? super T> list, T obj) 使用指定元素替换指定列表中的所有元素。

    • static void reverse(List<?> list) 反转指定列表中元素的顺序。

集合总结几张图

 

集合常见面试题

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值