数组相关练习

数组练习

  • 将数组转化成字符串
  • 数组拷贝
  • 求数组元素的平均值
  • 查找数组中指定元素(顺序查找)
  • 二分查找
  • 冒泡排序
  • 数组逆序

将数组转化成字符串

import java.util.Arrays;public class Text1 {public static void main(String[] args) {int[] arr = {5, 6, 4, 2};System.out.println(Arrays.toString(arr));}}

代码运行结果:
在这里插入图片描述
这里导入了java.util包下的Arrays类,其中包含了一些操作数组的常用方法.

数组拷贝

大家说下面这是不是数组的拷贝,答案是不是,这只是两个数组指向同一个对象

public class Text2 {public static void main(String[] args) {int[] arr={2,6,5,4};int[] arr1=arr;}
}

下面这段代码这才是数组的拷贝,将一个数组的内容复制一份放进新的数组

public class Text2 {public static void main(String[] args) {int[] arr={2,6,5,4};int[] newarr= Arrays.copyOf(arr,arr.length);System.out.println(Arrays.toString(newarr));}
}

还有一个可以将arr数组一个区间复制到新数组的方法(注意范围是左闭右开)

import java.util.Arrays;public class Text2 {public static void main(String[] args) {int[] arr={2,6,5,4};int[] newarr= Arrays.copyOfRange(arr,0,2);System.out.println(Arrays.toString(newarr));}
}

接下来我们自己实现一个copy方法


import java.util.Arrays;public class Text2 {public static void main(String[] args) {int[] arr={2,6,5,4};int[] newarr=my_copy(arr,arr.length);System.out.println(Arrays.toString(newarr));}static int[] my_copy(int[] arr,int len){int[] newarr=new int[len];for (int i = 0; i <len ; i++) {newarr[i]=arr[i];}return newarr;}
}

求数组元素的平均值

public static void main(String[] args) {int[] arr = {1,2,3,4,5,6};System.out.println(avg(arr));
}public static double avg(int[] arr) {int sum = 0;for (int x : arr) {sum += x;}return (double)sum / (double)arr.length;
}

代码运行结果:
在这里插入图片描述

查找数组中指定元素(顺序查找)

class Text2 {public static void main(String[] args) {int[] arr = {1, 2, 3, 10, 5, 6};System.out.println(nd(arr, 10));}public static intnd(int[] arr, int data) {for (int i = 0; i < arr.length; i++) {if (arr[i] == data) {return i;}}return -1;}}

代码运行结果
在这里插入图片描述

二分查找

比如我们要查找以下数组的1,设置两个指针l,r,分别指向左右两边的元素
在这里插入图片描述
求中间下标所对应数组值,将他与我们要查找的值进行比较,如果小于我们查找的值,说明我们要查找的值在mid右边,l=mid+1,如果大于我们查找的值,说明我们要查找的值在mid左边,r=mid-1。如果等于就直接返回下标
在这里插入图片描述
在这里插入图片描述
代码演示:

class Text2 {public static void main(String[] args) {int[] arr={1,2,3,4};System.out.println(erfen(arr,1));}static int erfen(int[] arr,int target){int l=0;int r=arr.length-1;while (l<=r){int mid=(l+r)>>1;if(arr[mid]<target){l=mid+1;}else if(arr[mid]==target){return mid;}else {r=mid-1;}}return -1;}
}

冒泡排序

import java.util.Arrays;
class Text2 {public static void main(String[] args) {int[] arr={1,2,7,54,6};my_sort(arr);System.out.println(Arrays.toString(arr));}public static void my_sort(int[] arr){for(int i=0;i<arr.length;i++){for (int j=0;j<arr.length-i-1;j++){if(arr[j]>arr[j+1]){int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}
}

冒泡排序我们已经讲了很多次,这里我就不赘述了,如果想了解,请看我的其他博文。

数组逆序

import java.util.Arrays;
class Text2 {public static void main(String[] args) {int[] arr={1,2,3,4};my_reverse(arr);System.out.println(Arrays.toString(arr));}public static void my_reverse(int[] arr){int l=0;int r=arr.length-1;while (l<r){int temp=arr[l];arr[l]=arr[r];arr[r]=temp;l++;r--;}}
}

这里我们设置了两个指针,一个指向第一个元素,一个指向最后一个元素,不断向中间靠拢,一直交换两个下标所指向的元素,当中间没有元素或中间有一个元素时候循环结束,就是这个条件就可以用l<r来控制。
代码运行结果:
在这里插入图片描述

更多数组相关内容请听下回讲解,看到这里了,不妨给博主给个三连,要是想持续收听,也可以关注博主, 让我们一起变得更强吧,大家加油!!!!

大家想复习一下数组的可以看我的另一篇博客:原来这就是数组
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/28947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习gRPC (三)

测试gRPC例子 编写proto文件实现服务端代码实现客户端代码 通过gRPC 已经编译并且安装好之后&#xff0c;就可以在源码目录下找到example 文件夹下来试用gRPC 提供的例子。 在这里我使用VS2022来打开仓库目录下example/cpp/helloworld目录 编写proto文件 下面是我改写的exa…

gazebo 导入从blender导出的dae等文件

背景&#xff1a; gazebo 模型库里的模型在我需要完成的任务中不够用&#xff0c;还是得从 solidworks、3DMax, blender这种建模软件里面在手动画一些&#xff0c;或者去他们的库里面在挖一挖。 目录 1 blender 1-1 blender 相关links 1-2 install 2 gazebo导入模型 2-1 g…

LayUI之入门

目录 1.什么是layui 2.layui、easyui与bootstrap的对比 有趣的对比方式&#xff0c;嘿嘿嘿.... easyuijqueryhtml4&#xff08;用来做后台的管理界面&#xff09; 半老徐娘 bootstrapjqueryhtml5 美女 拜金 layui 清纯少女 2.1 layui和bootstrap对比&#xff08;这两个都属…

【EI复现】梯级水光互补系统最大化可消纳电量期望短期优化调度模型(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Multimodal Learning with Transformer: A Survey

Transformer多模态学习 Abstract1 INTRODUCTION2 BACKGROUND2.1 Multimodal Learning (MML)2.2 Transformers: a Brief History and Milestones2.3 Multimodal Big Data 3 TRANSFORMERS: A GEOMETRICALLY TOPOLOGICAL PERSPECTIVE3.1 Vanilla Transformer3.1.1 Input Tokenizat…

旷视科技AIoT软硬一体化走向深处,生态和大模型成为“两翼”?

齐奏AI交响曲的当下&#xff0c;赛道玩家各自精彩。其中&#xff0c;被称作AI四小龙的商汤科技、云从科技、依图科技、旷视科技已成长为业内标杆&#xff0c;并积极追赶新浪潮。无论是涌向二级市场还是布局最新风口大模型&#xff0c;AI四小龙谁都不甘其后。 以深耕AIoT软硬一…

C++:基于浅拷贝/深拷贝对模拟string类的一些优化

文章目录 string类和日期类浅拷贝/深拷贝对于上述代码的深拷贝写法正常版本和优化版本写时拷贝 string类和日期类 前面我们已经实现了string类和日期类&#xff0c;这两个类有没有想过它们有什么不同&#xff1f; 其实答案很明显&#xff0c;不同的地方在于string类中涉及到内…

黑马点评学习笔记2

黑马点评学习笔记 1.缓存穿透1.1 缓存穿透是什么&#xff1f;1.2缓存穿透的解决方案1.2.1 缓存空对象1.2.2 布隆过滤1.2.3 其他解决方案 2.缓存雪崩2.1 缓存雪崩是什么&#xff1f;2.2 缓存雪崩的解决方案 3.缓存击穿3.1缓存击穿是什么&#xff1f;3.2缓存击穿的解决方案3.2.1互…

idea添加翻译插件并配置有道翻译

1、安装Translation插件 2、 创建有道云应用 有道智云控制台 3、设置idea 4、效果&#xff08;选中文本右键翻译&#xff0c;默认快捷键CtrlShiftY&#xff09;

篇二十二:解释器模式:处理语言语法

篇二十二&#xff1a;"解释器模式&#xff1a;处理语言语法" 开始本篇文章之前先推荐一个好用的学习工具&#xff0c;AIRIght&#xff0c;借助于AI助手工具&#xff0c;学习事半功倍。欢迎访问&#xff1a;http://airight.fun/。 另外有2本不错的关于设计模式的资料…

CentOS安装Postgresql

PG基本安装步骤 安装postgresql&#xff1a; sudo yum install postgresql-server初始化数据库&#xff1a;安装完毕后&#xff0c;需要初始化数据库并创建初始用户&#xff1a; sudo postgresql-setup initdb启动和停止服务&#xff1a; sudo systemctl start postgresql sudo…

一文详解高并发中的线程与线程池

一切要从CPU说起 你可能会有疑问&#xff0c;讲多线程为什么要从CPU说起呢&#xff1f;原因很简单&#xff0c;在这里没有那些时髦的概念&#xff0c;你可以更加清晰的看清问题的本质。CPU并不知道线程、进程之类的概念。CPU只知道两件事:1. 从内存中取出指令2. 执行指令&…

远景智能PMO负责人严晓婷受邀为第十二届中国PMO大会演讲嘉宾

上海远景科创智能科技有限公司PMO负责人严晓婷女士受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;能源物联网产品标准项目和非标准项目的并行管理。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1…

React 入门学习

React 入门 一、基本认识1.1、前言1.2、什么是1.3、编译<br>1.4、特点1.5、高效 二、React环境和基本使用2.1、环境搭建2.2、脚手架项目基本使用2.2.1、src2.2.2、public2.2.3、package.json 三、JSX的理解和使用四、模块与模块化, 组件与组件化的理解4.1、模块与组件4.2…

nginx基础

nginx 具体就是一个轻量级以及高性能的web服务软件。 nginx特点 1、稳定性高。&#xff08;但不如apache&#xff09; 2、系统资源消耗比较低。&#xff08;处理http请求的并发能力较高&#xff0c;单台处理器可以处理3w-5w的并发请求&#xff09; 注&#xff1a;一般在企…

请解释一下JavaScript中的基本数据类型和引用数据类型,以及它们在内存中的存储方式。

1、请解释一下JavaScript中的基本数据类型和引用数据类型&#xff0c;以及它们在内存中的存储方式。 JavaScript中有两种类型的数据&#xff1a;基本数据类型&#xff08;也称为原始数据类型&#xff09;和引用数据类型。 基本数据类型包括&#xff1a; Number&#xff08;数…

用PointNet分类3D点云

在本教程中&#xff0c;我们将学习如何训练PointNet进行分类。 我们将主要关注数据和训练过程&#xff1b; 展示如何从头开始编码 Point Net 的教程位于此处。 本教程的代码位于这个Github库中&#xff0c;我们将使用的笔记本位于这个Github库中。 一些代码的灵感来自于这个Git…

Java仓库管理系统设计与实现

仓库管理系统 JAVA/数据库 课程设计 仓库管理系统 使用 MySQL和Idea 功能需求 1、问题描述 设计一个仓储管理系统&#xff0c;对仓库货品进行管理&#xff0c;出入库进行记录。 主要功能包括&#xff0c;货品添加修改&#xff0c;出库、入库、库存查询等功能&#xff0c;现…

【密码学】六、公钥密码

公钥密码 1、概述1.1设计要求1.2单向函数和单向陷门函数 2、RSA公钥密码体制2.1加解密2.2安全性分析 3、ElGamal公钥密码体制3.1加解密算法3.2安全性分析 4、椭圆曲线4.1椭圆曲线上的运算4.2ECC 5、SM2公钥密码体制5.1参数选取5.2密钥派生函数5.3加解密过程5.3.1初始化5.3.2加密…

安装linux操作系统

安装虚拟机的步骤&#xff1a; 安装linux系统 之后开启虚拟机 之后重启&#xff0c;打开虚拟机&#xff0c;登录root账号