黑马程序员_Java基础_05数组数组拷贝、数据常见问题

黑马程序员入学Java知识——精华总结 黑马程序员入学Java知识——精华总结   J2SE部分,Java高新技术部分,7K面试题部分等黑马入学要求的知识点总结!   一、黑马程序员—java概述与基础知识 6 1、何为编程? 6 2、Java语言概述,历史、特点 6 3、什么是跨平台性?原理是什么?JVM 7 4、Jre和Jdk的区别? 7 5、java虚拟机JVM 8 6、 Java程序运行机制 8 7 阅读详情
-------  android培训 、 ios培训 、期待与您交流! ----------
一、什么是数组以及数组常见操作
数组:同一类型数据的集合。就是一个存储数据的容器。
特点:  可以对数组中的每一个元素进行编号,从0开始;这样方便对数组中的元素进行操作。
通过数组的length属性可以获取到数组的长度。
注意:
定义数组时,必须指定长度。
什么时候使用数组呢?
当参与运算的数据较多时,必须想到先将数据进行临时存储。

对数组容器的常见操作:
 1、对数组进行遍历
 2、获取最的最大或最小值
  public static int getMax(int[] arr)
  {
   int max = 0;
   for(int x=1; x<arr.length; x++)
   {
    if(arr[x]>arr[max])
    max = x;
   }
   return arr[max];
  }
            3、数组排序
  /*
  指定一个位置用该位置上的元素和数组元素进行比较。
  在内循环结束一次,该位置出现最值。
  */
  public static void sort_1(int[] arr)
  {
   for(int x=0; x<arr.length-1; x++)
   {
    for(int y=x+1; y<arr.length; y++)
    {
     if(arr[x]>arr[y])
     {
     
     }
    }
   }
  }
  /*
  相邻两个元素进行比较。
  内循环结束一次,后位出现最值。
  */
  public static void sort_2(int[] arr)
  {
   for(int x=0; x<arr.length-1; x++)
   {
    for(int y=0; y<arr.length-x-1;y++)
    {
     if(arr[y]>arr[y+1])
     {
     
     }
    }
   }
  }
            
             注意事项:y<arr.length-x-1:  -x是为了减少参与比较的元素的个数;  -1是为了避免脚标越界。
  public static void swap(int[] arr,int a,int b)
  {
   //arr[a] = arr[a]^arr[b];
   //arr[b] = arr[a]^arr[b];
   //arr[a] = arr[a]^arr[b];
   
   int temp = arr[a];
   arr[a] = arr[b];
   arr[b] = temp;
   /**/
  }
 
            4、折半查找:前提:必须是有序的数组才有效。 //这个比较经典,值得回顾
  public static int binarySearch(int[] arr,int key)
  {
   int start=0,end=arr.length-1,mid;
   while(start<=end)
   {
    mid = (start+end)>>1;
    if(key>arr[mid])
     start = mid + 1;
    else if(key<arr[mid])
     end = mid - 1;
    else
    return mid;
   }
   return -1;
  }
 
二、多维数组复制:
         多维数组赋值时,先高维后低维,简言之就是从左到右
public class TestMutiArray{
 public static void main(String args[]){
  int[][] a={{1,2,3},{2,3},{3,4,5,8}};
  for(int i=0;i<a.length;i++){  //使用双for循环遍历二维数组并输出打印其值
   for(int j=0;j<a[i].length;j++){
    System.out.println(a[i][j]);
   }
  }
 }
}

三、数组拷贝问题:
public class TestMutiArray{
 public static void main(String args[]){
  int[][] a={{1,2,3},{2,3},{3,4,5,8}};
  for(int i=0;i<a.length;i++){
   for(int j=0;j<a[i].length;j++){
    //System.out.println(a[i][j]);
   }
  }
  //arrayCopy();
  arrayCopy1();
 }
 public static void arrayCopy(){
  int arr[]={1,2,3,4,5};
  int arr1[]=new int[8];
  System.arraycopy(arr,0,arr1,0,arr.length);
  for(int i=0;i<arr1.length;i++){
   System.out.println(arr1[i]);
  }
 }
 public static void arrayCopy1(){
  int[][] a={{1,2},{3,4},{5,6,7}};
  int[][] a1=new int[3][];
  System.arraycopy(a,0,a1,0,a.length);
  a1[2][1]=100 ; ——————①
  System.out.println("被拷贝的数组:"+a[2][1]);
  System.out.println("拷贝的数组:"+a1[2][1]);
 }
}
①这里需要注意的是,这里拷贝的时候,由于拷贝的是数组的引用,所以在更改拷贝的值之后,其实也将原来数组引用的所指向的值改变了, 具体参照下图:



四、 数组中的涉及的其他问题:
 1、数组脚标越界异常。
 2、空指针异常。
 二维数组:可以理解为数组中的数组。
 格式1:int[][] arr = new int[3][];
 System.out.println(arr[0]);//null。是二维数组中第一个一维数组。该数组默认初始化值为null。
 格式2:int[][] arr = new int[3][2];
 System.out.println(arr[0]);//是数组的哈希值。因为二维数组中的小数组被重新初始化为一个数组实体。
 格式3:int[][] arr = {{3,4},{8,1,9}};
  System.out.println(arr.length);//打印二维数组的长度。
  System.out.println(arr[1].length);//打印二维数组中第二个小数组的长度。
 
 二维数组元素求和:其实就是大圈套小圈(使用双for循环可完成)
 int sum = 0;
 for(int x=0; x<arr.length; x++)
 {
  for(int y=0; y<arr[x].length; y++)
  {
   sum = sum + arr[x][y];
  }
 }
 什么时候使用二维数组呢?
 有很多数据。这些数据又有分组。这时可以使用二维数组。
 例如:学生的成绩
 学生甲:80,88,90,86
 学生乙:90,90,70,80
 int[][] arr = {{80,88,90,86},{90,90,70,80}};
 arr就代表总成绩。



惊爆揭秘!异步启动永磁同步电机,调速核心技术大起底 传统的同步启动方式需要额外的同步设备,成本高且维护复杂。异步启动PMSM则巧妙地利用了鼠笼感应电机的启动原理,无需额外同步设备即可实现安全可靠的启动。其核心思想是将定子电流分解为两个正交的分量:磁链分量(id)和转矩分量(iq),分别控制这两个分量,从而实现对电机转矩的精确控制。随着电机设计技术的不断进步和控制算法的不断优化,异步启动PMSM的性能将得到进一步提升,应用范围也将更加广泛。异步启动PMSM的调速技术是其核心技术之一,直接影响着电机的性能和应用范围。 阅读详情

相关推荐

图生文【学习中】

图生文:提供图像,把图像对应的信息用文本描述出来

qq_19072921的博客 1787

Java中IO流以数组为单位遍历容易出现的问题

IO流中以数组为单位遍历读取容易出现的错误 铛铛铛!我们在IO流的联系中通常会使用到以数组为单位的输入流,对于这样的的输入流我们知道,要想查看其中的内容,无非是遍历出来。但是当我们进行遍历的时候往往会忽视一个问题,下面给大家举个例子来理解这个问题,对于例子当中的异常我们先做抛出处理,如果想直接看重点可以直接跳过这段代码看下面的几小段代码就行 import java.io.File; import java.io.FileReader; import java.io.IOException; publi

qq_45757934的博客 383

从零到飞:在Ubuntu 22.04上为你的无人机搭建PX4-Autopilot开发环境

本文详细指导在Ubuntu 22.04上搭建PX4-Autopilot开发环境,涵盖系统依赖安装、源码获取、编译目标选择及Gazebo仿真测试。通过优化构建过程和调试技巧,帮助开发者快速为无人机部署稳定的飞控系统,实现从仿真到实机的平滑过渡。

weixin_26878995的博客 489

黑马程序员——Java基础---深层拷贝(数组、ArrayList)

——- android培训、java培训、期待与您交流! ———-JAVA中复制数组元素值:(深拷贝)在JAVA里面,可以用复制语句“A=B”给基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变。 public static void main(String[] args) {

mu_se的博客 686

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换)

本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。

weixin_30326515的博客 241

Agisoft Metashape相机标定笔记

使用Metashape进行自动相机标定是可能的。(可选:使用打印的棋盘格图案,但需保证它是平坦的且单元格是正方形)。相机标定步骤支持全相机标定矩阵的估计,包含非线性的畸变参数。相机模型的细节请参照附录D——相机模型板块。:在通用的工作流程中,相机标定步骤可以跳过。因为Metashape会在图像定向过程中进行相机自标定。但是,如果定向结果不稳定,例如,由于影像之间缺乏连接点,额外进行单独的相机标定步骤也许是有用的。

天桥飞熊的博客 3972

【黑马程序员java笔记】java基础的数组和方法练习

拷贝的范围可以自己定义,也可以键盘输入。这里设定的是自己定义。要干嘛?拷贝数组干这件事需要什么?数组,拷贝开始索引和拷贝结束索引是否需要返回?返回拷贝的数组/*** @Description:拷贝数组} //1. 要干嘛?拷贝数组 //2. 干这件事需要什么?数组,拷贝开始索引和拷贝结束索引 //3. 是否需要返回?返回拷贝的数组 public static int [ ] copyOfRange(int [ ] original , int from , int to) {

m0_48165967的博客 362

达梦数据库JDBC连接池断开自动重连设置

一、场景 在网络状况不是非常良好,经常会出现暂时性的拥塞或者断开的情况,而且当我们重启数据库时也会发生类似的情况。所以需要配置中间件的连接池来实现连接测试以及自动重连,通过重新配置连接池,成功解决了这个问题。下面会给出一份数据源配置参数详单和一份推荐的数据源配置项。 二、连接池配置参数 1. initialSize:连接池启动时创建的初始化连接数量 2. maxActive:连接池中可同时连接的最大的连接数 3. maxIdle:连接池中最大的空闲的连接数,超过的空闲连接将被释放,如果设置为负

lilv1989的博客 7235

黑马程序员——Java数组

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、学习目 标 完成本模块的学习后,应该能够: 声明并创建原始数组、类数组或数组类型解释为什么数组的元素需初始化给出数组定义并初始化数组元素确定一个数组中元素的数量创建多维数组编写从一个数组类型到另一个数组类型数组值的拷贝代码 二、数组的声明 相同类型的

zty447647649的博客 318

新手必看:C#调用YOLO模型完成图片/视频目标检测(上位机版)

新手学习C#调用YOLO模型,核心是先把基础流程跑通,再逐步优化。图片检测是基础,视频检测就是在图片的基础上加循环和线程,而上位机的实际项目,就是在这个基础上适配工业硬件和业务需求。本文的代码都是新手能直接复制运行的,如果你运行时遇到问题,先检查前期准备是否到位,再看避坑指南。记住,新手别追求一步到位,先实现功能,再慢慢优化性能和界面。等你能熟练调用YOLO模型后,再去研究模型训练、量化优化等进阶内容,会轻松很多。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 986

HQChart实战教程64-自定义分时图标题栏

分时图标题栏显示的是当前十字光标所在位置的分钟信息,显示在分时图窗口顶部。一般会显示品种的名称,日期,时间,价格,均价 涨幅,成交量,金额等等,hqchart内置会显示这些信息。如果要额外显示其他的字段,就需要通过替换格式化标题输出函数来是现实。我们在hqchart实例创建完成以后,通过OnCreatedCallback回调函数替换自己的格式化输出函数。返回 { AryText:[ { Text:文字, Color:颜色},…入参 data={ Data: 当前十字光标所在位置的分钟线 }

小银 1056

IO流(黑马程序员学习笔记)

字节缓冲流在源代码中内置了字节数组,可以提高读写效率。效率高(推荐,代码简单),流每次拿指定数组大小的字节,再写入目的源。效率高,每次从数据源拿8192个字节,再放到内存中,每次从内置数组(调用出来的数组)中拿每次拿指定数组大小的字节,写到输出数组中,写满8192个字节后,输出。/*D:\00-课程介绍.mp4 146MB拷贝的效率测试:1. 普通流单个字节拷贝 361719毫秒2. 普通流 + 自定义数组拷贝 146毫秒3. 缓冲流单个字节拷贝 2055毫秒。

A2294249395的博客 890

视觉提示学习(Prompt Learning):CV领域的GPT时刻?

视觉提示学习(Prompt Learning):CV领域的GPT时刻? ,人工智能,计算机视觉,大模型,AI,在人工智能技术不断演进的今天,计算机视觉(Computer Vision,CV)作为人工智能领域的重要分支,始终致力于让机器 “看懂” 世界。从早期基于传统特征工程的图像识别方法,到深度学习时代卷积神经网络(Convolutional Neural Networks,CNN)的崛起,CV 领域经历了多次重大变革。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

黑马程序员java笔记

黑马程序员java笔记,JAVA,Java,简单

weixin_74332465的博客 1948

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

黑马程序员英语单词册

黑马程序员英语单词册经过几天的整理黑马程序员将必备的 600 词汇,和有关计算机需要掌握的词汇整理出来,分享给大家学习,希望对你有所帮助。

程序员猫爪 2408

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

黑马程序员JAVA学习日记day06

本文分享了Java学习笔记,主要包含两部分内容:一是Java内存分配机制,介绍了栈、堆、方法区等内存区域的作用及JDK8后的变化;二是方法的使用,详细说明了方法定义、参数传递、返回值处理和方法重载等概念,并提供了数组遍历、求最大值和元素查找等实用案例代码。文章适合Java初学者参考学习,用简明易懂的语言讲解了基础知识点,并配有实际代码示例帮助理解。

2401_86935697的博客 469

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Java基础|Day04】Java数组详解:从定义到内存原理

本文详细介绍了Java数组的定义、初始化、访问遍历及内存原理。主要内容包括:1)数组的定义格式与声明过程;2)静态和动态两种初始化方式的区别与使用场景;3)数组索引规则和遍历方法;4)重点讲解了数组在栈和堆内存中的分配机制,通过示例代码分析内存变化过程;5)对比了数组浅拷贝和深拷贝的区别。文章强调数组变量存储的是地址而非数据本身,并指出数组初始化后长度固定不可变。

m0_73999950的博客 4203

黑马go语言视频教程

原文地址:来了,你们要的Go,某马Go语音视频教程 之前分享的视频,Python、Java 的居多,现在好像 Go 很火? 后台一堆找我问我要 Go 的。 这让我左右为难啊 不过还是要迎难而上,对不对? 于是,网上一顿搜,找到了一堆 我又进行了筛选 最终确定了一份看着还不错的视频教程 目录 嗯,又是黑马的 ├─第1天视频(基本类型、流程控制) │ 01_课程安排 │ ...

生命在于折腾 7882

黑马程序员Java零基础视频教程_上部(P177-P200)

黑马程序员Java零基础视频教程_上部(P177-P200)

这里有一只小马吖 2286

Java入门基础视频教程1 黑马程序员

Java课程简介Java语言概述Java环境搭建,JDK安装,常用命令Java入门程序Java入门程序:常见问题补充知识:Java执行原理、bug介绍7:JDK组成、跨平台原理8.JDK安装后Path和JAVA_HOME环境变量9:IDEA开发工具:简介、下载、安装10:IDEA开发工具:开发第一个程序11:IDEA开发工具:字体、快捷键、其他操作导入其他模块时先创建一个同名模块,然后导入把文件复制过来删除模块,最好的方法就是先remove掉模块再去文件夹里面直接删除掉模块文件。

weixin_62540227的博客 237

黑马程序员_Java基础_我的day20学习笔记

IO流(重点知识)01. IO流概述及其分类 1.概念 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流,输出流。 流按操作类型分为两种: 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 字符流 : 字符流只能操作纯字符数据,比较方便。 2.IO流常用父类 字节流的抽象父类:

qq_21796869的博客 972

《黑马程序员》 IO之文件拷贝

import java.io.*; class Demo8 { /* 文件拷贝复习 复制d:\temp.txt中的内容到e\目录中 如何获取当前的文件的名称了 */ public static void main(String[] args) { File src; File destFile; try{ src=new Fil

青云志,我心不死,必度青天... 799

黑马程序员—java基础之IO流

黑马程序员—java基础之IO流                                                         ------- android培训、java培训、期待与您交流! ----------   请记住: 这个世界上没有任何力量能够阻碍我们走向成功。如果有,就是我们自己。 IO流概念 IO流用来处理设备之间的数据传输  Java对数据的操作

IT梦想之旅 838

黑马程序员-Java语言进阶-05 【异常、线程】

day05 【异常、线程】 主要内容 异常、线程 教学目标 能够辨别程序中异常和错误的区别 说出异常的分类 说出虚拟机处理异常的方式 列举出常见的三个运行期异常 能够使用try…catch关键字处理异常 能够使用throws关键字处理异常 能够自定义异常类 能够处理自定义异常类 说出进程的概念 说出线程的概念 能够理解并发与并行的区别 能够开启新线程 第一章 异常 1.1 异常概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不

young的博客 278

黑马程序员 基础测试题

public class Test1 { /** * 第1题:求斐波那契数列第n项,n *  * @param args */ public static void main(String args[]) { int n, fun;// n为第n项,fn为第n项的值 java.util.Scanner in; while (true) {//循环输出数字 in = ne

u010267179的专栏 1361

黑马程序员——java编程练习题

 ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Java基础编程练习题总结 1.打印99乘法表。 2.获取1-10的和,并打印。 3.1-100之间7的倍数的个数。并打印。 4.3000

oo7oo7wo的专栏 1204
上一篇: 黑马程序员_Java基础_04数组main函数args详解、数组排序、二分查找实例
下一篇: 黑马程序员_06常用类String 、StringBuffer、File类以及递归调用
孔子云
博客等级 码龄15年 1粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值