数组的复制与二维数组的用法
今天学习的主要内容有
- 数组的复制
数组的复制
利用循环进行数组的复制
import java.util.Arrays;
public class Main3 {public static void main(String[] args) {int []arr = new int[]{1,2,3,4,5,6};int []arr1 = new int[arr.length];for (int i = 0; i < arr.length; i++) {arr1[i] = arr[i];}System.out.println(Arrays.toString(arr1));}
}
利用copyOf方法进行复制
copyOf进行复制时会出现三种情况
1.复制的数组与原数组相同,则按照原数组输出
2.若复制的数组的长度<原数组的长度,则按照长度小的输出
3.若复制的数组的长度>原数组的长度,则按照长度大的输出,多余的位置补充默认值
import java.util.Arrays;public class Main3 {public static void main(String[] args) {int []arr = new int[]{1,2,3,4,5,6};int []arr1 = Arrays.copyOf(arr,6);System.out.println(Arrays.toString(arr1));int []arr2 = Arrays.copyOf(arr,4);System.out.println(Arrays.toString(arr2));int []arr3 = Arrays.copyOf(arr,10);System.out.println(Arrays.toString(arr3));}
}
以上就是数组复制的两种方法,由copyOf的源代码可知,copyOf有四个变量
利用copyof的性质可以快速的进行将数组插入,删除,复制。代码如下
删除数组指定位置的元素:
import java.util.Arrays;
public class Main1 {public static void main(String[] args) {int []arr1 = new int[]{1,2,3,4,5,6};int []arr2 = new int[arr1.length-1];System.out.println(Arrays.toString(arr1));int index = 2;System.arraycopy(arr1,0,arr2,0,index);System.arraycopy(arr1,index+1,arr2,index,arr1.length-index-1);System.out.println(Arrays.toString(arr2));}
}
在指定的位置插入元素
import java.util.Arrays;public class Main2 {public static void main(String[] args) {int []arr1 = new int[]{1,2,3,4,5,6,7};System.out.println(Arrays.toString(arr1));int []arr2 = new int[arr1.length+1];int index = 2;int num = 9;System.arraycopy(arr1,0,arr2,0,index);arr2[index] = num;System.arraycopy(arr1,index,arr2,index+1,arr1.length-index);System.out.println(Arrays.toString(arr2));}
}
这是arraycopy的四个变量
Object src 原数组
srcPos 原数组开始复制的位置
Object dest 复制后的数组
destPos 复制后数组开始的位置
length 复制后数组的长度
一些数组的例题
翻转数组
public class Main4 {public static void main(String[] args) {char[][] chunxiao = {{ '春' , '眠' , '不' , '觉' , '晓' } ,{ '处' , '处' , '闻' , '啼' , '鸟' } ,{ '夜' , '来' , '风' , '雨' , '声' } ,{ '花' , '落' , '知' , '多' , '少' }} ;for (int i = 0; i < chunxiao.length; i++) {for (int j = 0; j < chunxiao[i].length; j++) {System.out.print(chunxiao[i][j]+"\t");}System.out.println();}int temp = chunxiao[0].length;char [][]arr = new char[temp][chunxiao.length];for (int i = 0; i < chunxiao.length; i++) {for (int j = 0; j <temp; j++) {arr[j][i] = chunxiao[chunxiao.length-1-i][j];}}System.out.println("翻转后的结果为:");for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j]+"\t");}System.out.println();}}
}
第二题按照总分成绩进行排名将所有成绩输出
import java.util.Arrays;public class Main5 {public static void main(String[] args) {// 设 names 数组中存放学生姓名String[] names = { "安琪拉" , "王昭君" , "蔡文姬" , "妲己" , "张良" };// 设 courses 数组中依次存放三门课程的名称String[] courses = { "C++" , "Java" , "English" };// 设 scores 数组中依次存储的是 names 数组中各个学生的 C++ 、Java 、English 课程的成绩int[][] scores = {{ 90 , 89 , 75 } ,{ 59 , 40 , 100 } ,{ 100 , 99 , 80 } ,{ 80 , 61 , 61 } ,{ 60 , 100 , 99 } ,};int []sum = new int[scores.length];for (int i = 0; i < scores.length; i++) {for (int j = 0; j < scores[i].length; j++) {sum[i] +=scores[i][j];}}for (int i = 0; i < scores.length-1; i++) {for (int j = 0; j < scores.length - 1 - i; j++) {if(sum[j]>sum[j+1]){int temp = sum[j];sum[j] = sum[j+1];sum[j+1] = temp;String x = names[ j ];names[ j ] = names[ j + 1 ];names[ j + 1 ] = x ;int[] temp1 = scores[j];scores[j] = scores[j+1];scores[j+1] = temp1;}}}for( int i = 0 ; i < scores.length ; i++ ){// 输出学生姓名System.out.print( names[ i ] + " => " );for( int j = 0 ; j < scores[ i ] .length ; j++ ){// 输出课程名称System.out.print( courses[ j ] + ":");// 输出课程成绩System.out.print( scores[ i ][ j ] );if( j < scores[ i ] .length - 1 ) {System.out.print( " , " );}}System.out.println(" ,总成绩:"+sum[i]);System.out.println();}}
}
相关文章:

数组的复制与二维数组的用法
今天学习的主要内容有 数组的复制 数组的复制 利用循环进行数组的复制 import java.util.Arrays; public class Main3 {public static void main(String[] args) {int []arr new int[]{1,2,3,4,5,6};int []arr1 new int[arr.length];for (int i 0; i < arr.length; i…...
JS判断两个table数据是否完全相等(判断两个数组对象是否完全相等)
需求 现有的table为tableA,有多个要做对比的table为一个数组 CompareArray 涉及到的问题 外层是数组,但是内部数据都是对象,对象属性名的排序不一样外层数组也涉及到 顺序不一样的问题 思路 对compareArray做长度筛选 filter 得到 同长度…...

关于小程序,你想知道的这些
近年来,各大平台纷纷上架小程序,迎来了小程序的爆发式增长。今天就来跟大家简单分享一下小程序基本的运行机制和安全机制。 小程序的由来 在小程序没有出来之前,最初微信WebView逐渐成为移动web重要入口,微信发布了一整套网页开…...
WuThreat身份安全云-TVD每日漏洞情报-2023-02-13
漏洞名称:THORSTEN PHPMYFAQ 跨站点脚本 漏洞级别:高危 漏洞编号:CVE-2023-0791 相关涉及:THORSTEN PHPMYFAQ 3.1.10 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-03506 漏洞名称:TENDA AC23 越界写入 漏洞级别:高危 漏洞编号:CVE-2023-078…...

【Linux】软件安装(三分钟教会你如何在linux下安装软件)
🔥🔥 欢迎来到小林的博客!! 🛰️博客主页:✈️小林爱敲代码 🛰️博客专栏:✈️Linux之路 🛰️社区:✈️进步学堂 目录&…...
Fluent Python 笔记 第 10 章 序列的修改、散列和切片
本章将以第 9 章定义的二维向量 Vector2d 类为基础,向前迈出一大步,定义表示多维向量的 Vector 类。这个类的行为与 Python 中标准的不可变扁平序列一样。 10.3 协议和鸭子类型 在 Python 中创建功能完善的序列类型无需使用继承,只需实现符…...

在中国程序员工作是青春饭吗?
上个月公司告诉我毕业了。 我打开boss直聘,一溜溜的外包公司和我打招呼。 我寻思我说不定啥时候就离开深圳了,外包不外包也无所谓钱到位就行。(大公司学历不够格也进不去) 结果华为、平安的外包告诉我,不好意思呀&a…...

Linux tcpdump
tcpdump - 转储网络上的数据流 是不是感觉很懵?全方位描述tcpdump: 通俗:tcpdump是一个抓包工具,用于抓取网络中传输的数据包形象:tcpdump如同国家海关,凡是入境和出境的货物,海关都要抽样检查࿰…...

redis知识汇总(部署、高可用、集群)
文章目录一、redis知识汇总什么是redisredis的优缺点:为什么要用redis做缓存redis为什么这么快什么是持久化redis持久化机制是什么?各自优缺点?AOF和RDB怎么选择redis持久化数据和缓存怎么做扩容什么是事务redis事务的概念ACID概念主从复制re…...

【手写 Vuex 源码】第十篇 - Vuex 命名空间的实现
一,前言 上一篇,主要介绍了 Vuex 响应式数据和缓存的实现,主要涉及以下几个点: Vuex 的响应式实现原理;响应式核心方法 resetStoreVM;commit 和 dispatch 的处理; 本篇,继续介绍 …...

面试腾讯测试岗后感想,真的很后悔这5年一直都干的是基础测试....
前两天,我的一个朋友去大厂面试,跟我聊天时说:输的很彻底… 我问她:什么情况?她说:很后悔这5年来一直都干的是功能测试… 相信许多测试人也跟我朋友一样,从事了软件测试很多年,却依…...
知识图谱 方法、实践与应用 王昊奋 读书笔记(下)
最近读了这本书,在思路上很有启发,对知识图谱有了初步的认识,以下是原书后半部分的内容,可以购买实体书获取更多内容。 知识图谱推理 结合已有规则,推出新的事实,例如持有股份就能控制一家公司࿰…...

vue实现打印浏览器页面功能(两种方法)
推荐使用方法二 方法一:通过npm 安装插件 1,安装 npm install vue-print-nb --save 2,引入 安装好以后在main.js文件中引入 import Print from vue-print-nbVue.use(Print); //注册 3,现在就可以使用了 div id"printTest…...

【VictoriaMetrics】VictoriaMetrics单机版批量和单条数据写入(Prometheus格式)
VictoriaMetrics单机版支持以Prometheus格式的数据写入,写入支持单条数据写入以及多条数据写入,下面操作演示下如何使用 1、首先需要启动VictoriaMetrics单机版服务 2、使用postman插入单机版VictoriaMetrics,以当前时间插入数据 地址为 http://victoriaMetricsIP:8428/api…...

【青训营】分布式定时任务简述
这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天 分布式定时任务简述 定义 定时任务是指系统为了自动完成特定任务,实时、延时、周期性完成任务调度的过程。分布式定时任务是把分散的、可靠性差的定时任务纳入统一平台,并且实现集群管理调度和…...

golang语言本身设计点总结
本文参考 1.golang的内存管理分配 golang的内存分配仿造Google公司的内存分配方法TCmalloc算法;她会把将内存请求分为两类,大对象请求和小对象请求,大对象为>32K的对象。 在了解golang的内存分配之前要知道什么事虚拟内存,虚拟内存是把磁盘作为全局…...

PTA L1-046 整除光棍(详解)
前言:内容包括四大模块:题目,代码实现,大致思路,代码解读 题目: 这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被…...

将小程序代码转成uni-app代码
最近因为公司项目原因需要将小程序的项目转换成uni—app的项目,所以总结了以下几点: 首先你可以先到uni-app的官网简单看一下对它的介绍,本次文章的介绍是针对简单的微信小程序来进行的转化。 在这之前我们来看一下目录对比 下面就来介绍一下…...

C语言在游戏中播放音乐
使用 mciSendString 播放音乐 mciSendString 支持 mp3、wma、wav、mid 等多种媒体格式,使用非常简单。这里做一个简单的范例,用 mciSendString 函数播放 MP3 格式的音乐,代码如下: // 编译该范例前,请把 music.mp3 放…...

机器学习算法:随机森林
在经典机器学习中,随机森林一直是一种灵丹妙药类型的模型。 该模型很棒有几个原因: 与许多其他算法相比,需要较少的数据预处理,因此易于设置充当分类或回归模型不太容易过度拟合可以轻松计算特征重要性在本文[1]中,我想…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...