当前位置: 首页 > news >正文

做网站好吗/百度电脑版网页版入口

做网站好吗,百度电脑版网页版入口,b2c电商网站对比,西安网站建设动力无限今日内容 零、 复习昨日 一、集合框架体系 二、Collection 三、泛型 四、迭代 五、List(ArrayList、LinkedList) 零、 复习 throw和throws什么区别 throwthrows位置方法里面方法签名上怎么写throw 异常对象throws异常类名(多个)作用真正抛出异常对象声明抛出的异常类型 运行时…

今日内容

零、 复习昨日
一、集合框架体系
二、Collection
三、泛型
四、迭代
五、List(ArrayList、LinkedList)

零、 复习

throw和throws什么区别

throwthrows
位置方法里面方法签名上
怎么写throw + 异常对象throws+异常类名(多个)
作用真正抛出异常对象声明抛出的异常类型

运行时异常有哪些,什么特点

  • 运行时异常,查异常类是否继承自RuntimeException
  • 特点: 不用主动处理
  • 别称: 不受检查异常

编译期异常有哪些,什么特点

  • 只要不是RuntimeException及其子类,那都是编译期
  • 特点: 必须处理
  • 别称: 受检查异常(CheckedException)

异常的处理方式哪些,什么区别

  • 抛出,代码停止
  • 捕获,代码继续

finally干什么的

  • 放在最后执行,其中写的释放资源的代码

一、集合框架体系

数组: 是一个容器,用来存放数据的

  • 定长
  • 只能存储同一种数据类型的数据
  • int[] 可以存储int值,Student[] 可以存储引用类型
  • 只有一个length属性,没有方法,使用时功能简单

集合: 是一个容器,用来存放数据的

  • 不定长
  • 存各种各样类型
  • 只能存储引用类型
  • 提供了操作数据的各种方法

集合体系

image-20230731093616057

今天主要学习Collection,List,ArrayList,LinkedList…

二、Collection

Collection是单列集合层次结构中的根接口
一些 集合允许有重复的元素,而另一些则不允许。一些 集合是有序的,而另一些则是无序的
Collection下面的一些子实现类有些有重复元素,有些没有,有些可以有序,有些无序

方法: 每个都很常见,很重要

ps: Collection是接口,不能创建对象,为了演示这些API,需要使用子实现类,使用最常用的ArrayList集合来实现方法

    public static void main(String[] args) {// Collection是接口,不能直接创建对象// 但是当做父引用指向子类对象Collection col = new ArrayList(); // 向上转型// 存放元素 add(Object o)col.add(1);// 1--> 自动装箱Integer对象 --> Objectcol.add("a");col.add(new Date( ));System.out.println(col );// 再创建集合Collection col2 = new ArrayList();col2.add(11);col2.add(22);col2.add(33);// 批量添加 addAll(Collection c)col.addAll(col2);// 将参数与集合中的所有数据都添加到当前集合System.out.println(col );// 移除元素// boolean remove(Object o) 删除指定元素boolean r1= col.remove(-11);System.out.println("删除是否成功:" + r1 );System.out.println("删除后: "+col );// boolean removeAll(Collection<?> c)// 批量删除// col.removeAll(col2);// 删除指定数据// System.out.println("批量删除后: " + col );// 保留全部(反向删除)// boolean retainAll(Collection<?> c)col.retainAll(col2);// 保留指定数据,删除其他数据System.out.println("保留全部"+col );// 删除全部数据(清空)// col.clear();// System.out.println("清空: "+col );// 获得集合大小(尺寸/容量)int size = col.size( );System.out.println(size );// 判断集合是否为空(没有元素,长度为0即为空)boolean empty = col.isEmpty( );System.out.println(empty );// 判断集合是否包含指定元素// containsboolean contains = col.contains(11);System.out.println("是否包含:" + contains );}

三、迭代[重要]

迭代 (遍历), 将集合元素迭代,目的是取出元素.

    public static void main(String[] args) {Collection col = new ArrayList(  );col.add(1);col.add(2);col.add(3);col.add(4);col.add(5);col.add(6);// 遍历(迭代)集合// 1) 获得迭代器Iterator iterator = col.iterator( );// 2) 通过迭代器完成迭代(遍历)while(iterator.hasNext()){// hasNext() 判断有无下一个Object o = iterator.next( );// next()取出下一个元素System.out.println(o );}}

image-20230419105956171

增强for循环(foreach)

  public static void main(String[] args) {Collection col = new ArrayList(  );col.add(1);col.add(2);col.add(3);col.add(4);col.add(5);col.add(6);// 遍历(迭代)集合// 1) 获得迭代器Iterator iterator = col.iterator( );// 2) 通过迭代器完成迭代(遍历)while(iterator.hasNext()){// hasNext() 判断有无下一个Object o = iterator.next( );// next()取出下一个元素System.out.println(o );}// 使用增强for循环,改写迭代器遍历/*** for(数据类型 变量:集合/数组){** }* 1) 冒号右边是写要被遍历的集合或者数组对象* 2) 每次从集合或者数组取出的值赋值给左边变量*/System.out.println("-------" );for (Object o : col){System.out.println(o );}System.out.println("----------" );int[] arr = {11,22,33,44};for (int i : arr){System.out.println(i );}}

四、泛型

泛型在集合中主要是用来规定数据类型的.

语法: 设计时 <类型> , 例如<E> <K> ,<K,V> <T>
ps: E,K,V,T这些都是见名知意的简写,其实是可以随意写的

​ 使用时(创建类对象)指定泛型,即指定明确的数据类型<String> <Integer>

作用:

  • 约束集合存储的数据类型
  • 避免数据类型转换
   public static void main(String[] args) {// 没有泛型Collection col = new ArrayList();// 类型没有限制col.add(1);col.add("2");col.add(1.1);// for (Object o : col){//     String s = (String) o;// }// 使用泛型Collection<String> col2 = new ArrayList<>();// 就可以限制数据类型col2.add("A");col2.add("B");for (String s : col2){System.out.println(s );}// 使用泛型Collection<Integer> col3 = new ArrayList<>();col3.add(1);col3.add(2);col3.add(3);for (Integer i : col3){System.out.println(i );}/*** 为什么要用泛型?* 1) 经验: 虽然集合可以存储多种数据类型,但是大部分场景都是只存同一种数据* 2) 最主要的原因是: 没有泛型,类型太杂,需要使用指定类型还需要强制*    但是强制还容易报错*    所以:泛型的好处就会可以约定数据类型,从而减少数据类型转型*/}

泛型: 可以研究泛型类,泛型参数,泛型方法等等…

五、List

  • List是Collection的子接口
  • List是有序集合: 有序是指集合迭代顺序和插入顺序一致
  • List集合允许重复元素!!
  • List集合提供了可以针对索引(下标)操作元素的方法

List接口中的方法大部分与父接口Collection中一致,
但是除此之外的方法,确实提了可以通过下标操作元素(CRUD)的方法

  • void add(int index,E e) 按照下标位置加入元素 (增)(Create创建/新增)
  • E remove(int index) 按照下标位置移除元素 (删)(Delete删除)
  • E set(int index,E e) 按照下标位置设置(修改)元素 (改)(Update更新/修改)
  • E get(int index) 按照下标位置获得元素 (查)(Read读取/查询)

List是接口,没有办法演示其中的方法

List接口有两个常用的实现类:ArrayListLinkedList

5.1 ArrayList[重点]

ArrayList实现了List接口,即ArrayList也是有序集合,也允许重复元素,且那些关于下标操作集合的方法ArrayList都有!

ArrayList不保证线程安全

ArrayList底层是数组,大小可变是指它会扩容(不是真正大小可变)

5.1.1 演示方法

构造方法

  • ArrayList() 创建空集合,默认创建了一个长度为10的数组
  • ArrayList(Collection c) 创建一个集合,集合内直接就有指定的参数
  • ArrayList(int initialCapacity) 创建一个指定初始化容量的数组
 ArrayList<Integer> list = new ArrayList<>( );

方法

  • 其他的方法上午在Collection中已经学过
  • void add(int index,E e)
  • E remove(int index)
  • E get(int index)
  • E set(int index,E e)
    public static void main(String[] args) {// 定义泛型// 空参构造,创建空集合(默认容量10)ArrayList<Integer> list = new ArrayList<>( );// 最基本的添加方法list.add(3);list.add(1);list.add(1);list.add(4);list.add(4);list.add(2);// 遍历(保证顺序-->有序)// 允许重复元素for (Integer i : list) {System.out.println(i );}// 其他常规方法不再演示// 主要掌握关于下标的方法// 311442// 按照下标插入 add(int i,E e)list.add(3,0);System.out.println(list );// 按照下标获得元素(取值) E get(int i)Integer e = list.get(4);System.out.println("下标4的值: " + e );// 按照下标修改值 E set(int i,E e)Integer old = list.set(4, 10);System.out.println("修改后的集合:" + list );System.out.println("返回的数据:" + old );// 按照下标删除 E remove(int i)Integer remove = list.remove(4);System.out.println("删除下标3的数据后:" + list );System.out.println("返回的数据:" + remove );}

5.1.2 底层原理[掌握|理解]

ArrayList底层是使用数组,默认长度是10,但是存储元素多于10时会扩容.

如何扩容的?

  • 当加入元素时,先判断加入后会不会超出默认长度
  • 如果没有超出默认长度
    • add(Object o) 元素直接放最后
    • add(int index,Object o) 先将该位置以后的元素依次往后移动一个,然后再将该元素放入该位置
  • 当加入元素时,判断加入后长度会不会超出容量,如果超出就要扩容
  • 扩容是创建一个新的数组,容量是原来的1.5倍
  • 将原来数组的元素依次拷贝到新数组
  • 然后再放入新元素
// jdk源码   private void grow(int minCapacity) {// int oldCapacity = elementData.length;int newCapacity = oldCapacity + (oldCapacity >> 1);// 1.5倍if (newCapacity - minCapacity < 0)newCapacity = minCapacity;if (newCapacity - MAX_ARRAY_SIZE > 0)newCapacity = hugeCapacity(minCapacity);// minCapacity is usually close to size, so this is a win:elementData = Arrays.copyOf(elementData, newCapacity);}
/*
给定的代码是一个名为"grow"的方法,用于增加数组的容量。它接受一个参数"minCapacity",表示数组应该具有的最小容量。
以下是代码的逐步解释:
1. 方法首先使用"elementData"数组的"length"属性获取当前容量。
2. 然后通过将旧容量的一半加上旧容量本身来计算新容量。这是使用右移运算符(>>)实现的,它将值除以2。
3. 接下来,它检查新容量减去最小容量是否小于0。如果这个条件为真,说明新容量不足以满足所需的最小容量。在这种情况下,它将新容量设置为等于最小容量。
4. 然后,它检查新容量减去最大数组大小是否大于0。如果这个条件为真,说明新容量超过了数组允许的最大大小。在这种情况下,它调用"hugeCapacity"方法来计算一个在允许范围内的新容量。
5. 最后,它使用"Arrays.copyOf"方法创建一个具有更新容量的新数组。"elementData"数组被赋予新数组,从而增加了其容量。
总之,"grow"方法增加数组的容量以满足最小容量要求,并确保不超过允许的最大大小。
*/

5.1.3 特点[记住]

ArrayList特点: 1) 有序 2) 重复 3) 查询更新效率高 4) 删除插入效率低

应用场景: 适合那些查询频率高的地方. 且基本大部分场景都是经常查不经常删除和插入的,所以呢ArrayList就非常常用!!! 如果以后没有特殊说明,直接就使用ArrayList!!

相关文章:

day14_集合

今日内容 零、 复习昨日 一、集合框架体系 二、Collection 三、泛型 四、迭代 五、List(ArrayList、LinkedList) 零、 复习 throw和throws什么区别 throwthrows位置方法里面方法签名上怎么写throw 异常对象throws异常类名(多个)作用真正抛出异常对象声明抛出的异常类型 运行时…...

私有云:架构图

私有云&#xff1a;架构图 1、架构图2、服务器分配及配置3、本地物理机hosts文件配置4、相关软件包5、本地物理机电脑配置参考【内存最好20G往上】 机缘巧合之下突然想玩玩虚拟化&#xff0c;然后就查资料本地自己搭建一套私有云 使用【VMware Workstation】这个虚拟化软件来进…...

在安装和配置DVWA渗透测试环境遇到的报错问题

安装环境 前面的安装我参考的这个博主&#xff1a;渗透测试漏洞平台DVWA环境安装搭建及初级SQL注入-CSDN博客 修改bug 1.首先十分感谢提供帮助的博主&#xff0c;搭建DVWA Web渗透测试靶场_dvwa 白屏-CSDN博客&#xff0c;解决了我大多数问题&#xff0c;报错如下&#xff1…...

深度学习_2 数据操作

数据操作 机器学习包括的核心组件有&#xff1a; 可以用来学习的数据&#xff08;data&#xff09;&#xff1b;如何转换数据的模型&#xff08;model&#xff09;&#xff1b;一个目标函数&#xff08;objective function&#xff09;&#xff0c;用来量化模型的有效性&…...

win 下安装 nvm 的使用与配置

nvm 全名 node.js version management&#xff0c;是一个 nodejs 的版本管理工具。通过它可以安装和切换不同版本的 nodejs。 注&#xff1a;如果已经安装了 nodejs 需先卸载后再安装 nvm 为了确保 nodejs 已彻底删除&#xff0c;可以看看安装目录中是否有 node 文件夹&#x…...

Git笔记

删除最后一次提交 git reset --hard HEAD~1...

省钱兄共享茶室共享娱乐室小程序都有哪些功能

随着共享经济的兴起&#xff0c;共享茶室和共享娱乐室作为一种新型的共享空间&#xff0c;逐渐受到了年轻人的青睐。省钱兄共享茶室共享娱乐室小程序作为该领域的优秀代表&#xff0c;集多种功能于一身&#xff0c;为用户提供了一个便捷、舒适、高效的社交娱乐平台。本文将详细…...

vue-cli方式创建vue3工程

创建工程前&#xff0c;可先用命令行查看是否安装vue-cli。 通过命令行查看vue-cli版本 vue --version 如果已安装vue-cli&#xff0c;则会显示当前安装版本 vue/cli 4.5.13 如果没有安装vue-cli&#xff0c;会提示安装 vue : 无法识别“vue”命令 需要通过npm全局安装v…...

四、W5100S/W5500+RP2040树莓派Pico<TCP Server数据回环测试>

文章目录 1. 前言2. 协议简介2.1 简述2.2 优点2.3 应用 3. WIZnet以太网芯片4. TCP Server数据回环测试4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 测试现象 5. 注意事项6. 相关链接 1. 前言 在计算机网络中&#xff0c;TCP Server是不可或缺的角色&#xff0c;它…...

技术视角下的跑腿小程序开发:关键挑战和解决方案

跑腿小程序作为连接服务提供者和用户的桥梁&#xff0c;面临着诸多技术挑战。本文将聚焦于技术层面的关键挑战&#xff0c;并提供解决方案&#xff0c;以帮助开发者应对技术上的复杂问题。 1. 实时性与性能挑战 挑战&#xff1a; 跑腿小程序需要实时地匹配订单、更新状态和提…...

Mysql进阶-索引篇(下)

SQL性能分析 SQL执行频率 MySQL 客户端连接成功后&#xff0c;通过 show [session|global] status 命令可以提供服务器状态信息。通过如下指令&#xff0c;可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次&#xff0c;通过sql语句的访问频次&#xff0c;我们可…...

从龙湖智创生活入选金钥匙联盟,透视物业服务力竞争风向

假设你是业主&#xff0c;物业“服务”和“管理”&#xff0c;哪个名词看起来更加亲切、讨喜&#xff1f; 站在个人角度&#xff0c;“服务”更让人感受到温度。但对于一个要长期运营下去的住宅或者商企项目来说&#xff0c;整体的管理又必不可少。前者面向人&#xff0c;后者…...

什么是 CNN? 卷积神经网络? 怎么用 CNN 进行分类?(2)

参考视频&#xff1a;https://www.youtube.com/watch?vE5Z7FQp7AQQ&listPLuhqtP7jdD8CD6rOWy20INGM44kULvrHu 视频4&#xff1a;CNN 中 stride 的概念 如上图&#xff0c;stride 其实就是 ”步伐“ 的概念。 默认情况下&#xff0c;滑动窗口一次移动一步。而当 stride …...

样式迁移 - Style Transfer

所谓风格迁移&#xff0c;其实就是提供一幅画(Reference style image)&#xff0c;将任意一张照片转化成这个风格&#xff0c;并尽量保留原照的内容(Content)。 将样式图片中的样式迁移到内容图片上&#xff0c;得到合成图片。 基于CNN的样式迁移 奠基性工作&#xff1a; 首先…...

UE5.3启动C++项目报错崩溃

最近尝试用C来练习&#xff0c;碰到一个启动崩溃的事情 按照官方给的步骤做的&#xff1a;官方链接 结果是自定义的Character的问题&#xff0c;在自定义Character的构造函数里调用了&#xff1a; check(GEngine ! nullptr); GEngine->AddOnScreenDebugMessage(-1, 5, FCol…...

C/S架构和B/S架构

1. C/S架构和B/S架构简介 C/S 架构&#xff08;Client/Server Architecture&#xff09;和 B/S 架构&#xff08;Browser/Server Architecture&#xff09;是两种不同的软件架构模式&#xff0c;它们描述了客户端和服务器之间的关系以及数据交互的方式。 C/S 架构&#xff08…...

【AD9361 数字接口CMOS LVDSSPI】C 并行数据 LVDS

接上一部分&#xff0c;AD9361 数字接口CMOS &LVDS&SPI 目录 一、LVDS模式数据路径和时钟信号LVDS模式数据通路信号[1] DATA_CLK[2] FB_CLK[3] Rx_FRAME[4] Rx_D[5&#xff1a;0][5] Tx_FRAME[6]Tx_D[5&#xff1a;0][7] ENABLE[8] TXNRX系列 二、LVDS最大时钟速率和信…...

开关电源测试方案分享:电源纹波及噪声测试方法、测试标准

纹波及噪声影响着设备的性能和稳定性&#xff0c;是开关电源测试的重要环节。通过电源纹波噪声测试&#xff0c;检测电源纹波情况&#xff0c;从而提升开关电源的性能。纳米软件开关电源自动化测试软件助力纹波和噪声测试&#xff0c;提升测试效能。 开关电源纹波及噪声测试方法…...

git的使用——如何创建.gitignore文件,排除target、.idea文件夹的提交

前言 git作为开发人员必备的技能&#xff0c;需要熟练掌握&#xff0c;本篇博客记录一些git使用的场景&#xff0c;结合具体问题进行git使用的记录。以gitee的使用为例。 本篇博客介绍如何创建.gitignore文件&#xff0c;排除一些文件夹的提交&#xff0c;比如排除target、.i…...

react-antd组件 input输入框: 实现按回车搜索

目录 法1&#xff1a; 法2&#xff1a; 法1&#xff1a; 在Input组件上绑定onKeyUp方法 import { Input, message } from antd;class App extends React.Component{handeleSousuo () > {this.props.form.validateFields((error, values) > {if(!error){axios.post().t…...

python_PyQt5日周月K线纵向对齐显示_1_数据处理

目录 写在前面&#xff1a; 图形结果显示&#xff1a; 数据设计&#xff1a; 代码&#xff1a; 从日数据中计算周数据、月数据 生成图形显示需要的数据格式 写在前面&#xff1a; “PyQt5日周月K线纵向对齐显示”&#xff0c;将分三篇博文描述 1 数据处理。将数据处理成…...

leetcode经典面试150题---4.删除有序数组中的重复项II

目录 题目描述 前置知识 代码 方法一 双指针 思路 图解 实现 复杂度 题目描述 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&…...

Transformer英语-法语机器翻译实例

依照Transformer结构来实例化编码器&#xff0d;解码器模型。在这里&#xff0c;指定Transformer编码器和解码器都是2层&#xff0c;都使用4头注意力。为了进行序列到序列的学习&#xff0c;我们在英语-法语机器翻译数据集上训练Transformer模型&#xff0c;如图11.2所示。 da…...

21.12 Python 实现网站服务器

Web服务器本质上是一个提供Web服务的应用程序&#xff0c;运行在服务器上&#xff0c;用于处理HTTP请求和响应。它接收来自客户端&#xff08;通常是浏览器&#xff09;的HTTP请求&#xff0c;根据请求的URL、参数等信息生成HTTP响应&#xff0c;并将响应返回给客户端&#xff…...

Leetcode.274 H 指数

题目链接 Leetcode.274 H 指数 mid 题目描述 给你一个整数数组 c i t a t i o n s citations citations &#xff0c;其中 c i t a t i o n s [ i ] citations[i] citations[i] 表示研究者的第 i i i 篇论文被引用的次数。计算并返回该研究者的 h h h 指数。 根据维基百科…...

订单BOM放哪儿?(我的APS项目二)

供应商的小伙伴带来了一个全新的架构&#xff0c;在服务器提供的服务中&#xff0c;有一个对象模型服务&#xff0c;就是数据内存对象&#xff1b;这个方式确实是我在其它架构中没有见到过的。可惜&#xff0c;最初的版本&#xff0c;我们的订单BOM被设计到放在内存对象中。我对…...

从0到1之微信小程序快速入门(03)

目录 什么是生命周期函数 WXS脚本 ​编辑 与 JavaScript 不同 纯数据字段 组件生命周期 定义生命周期方法 代码示例 组件所在页面的生命周期 代码示例 插槽 什么是插槽 启用多插槽 ​编辑 定义多插槽 组件通信 组件间通信 监听事件 触发事件 获取组件实例 自…...

【面试高高手】—— docker面试题

文章目录 1. 什么是Docker&#xff1f;它有什么作用&#xff1f;2.Docker容器和虚拟机之间有什么区别&#xff1f;3.如何创建一个Docker容器&#xff1f;4.Docker镜像和容器的区别是什么&#xff1f;5.什么是Dockerfile?能够详细说明下吗&#xff1f;6.什么是Docker Compose&a…...

mac电脑怎么永久性彻底删除文件?

Mac老用户都知道在我们查看Mac内存时都会发现有一条“其他文件”占比非常高&#xff0c;它是Mac储存空间中的“其他”数据包含不可移除的移动资源&#xff0c;如&#xff0c;Siri 语音、字体、词典、钥匙串和 CloudKit 数据库、系统无法删除缓存的文件等。这些“其他文件”无用…...

MySQL(2):环境搭建

1.软件下载 软装去官网下载&#xff08;社区版&#xff09;&#xff1a;https://downloads.mysql.com/archives/installer/&#xff08;历史版本可选&#xff09; 选择下面的&#xff0c;一步到位 2.软件安装 双击 .msi 文件 选完 Custom 自定义后点 next 按 1&#xff0c…...