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

数组相关练习

数组练习

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

将数组转化成字符串

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来控制。
代码运行结果:
在这里插入图片描述

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

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

相关文章:

数组相关练习

数组练习 将数组转化成字符串数组拷贝求数组元素的平均值查找数组中指定元素(顺序查找)二分查找冒泡排序数组逆序 将数组转化成字符串 import java.util.Arrays;public class Text1 {public static void main(String[] args) {int[] arr {5, 6, 4, 2};System.out.println(Arr…...

Leetcode-每日一题【剑指 Offer 11. 旋转数组的最小数字】

题目 把一个数组最开始的若干个元素搬到数组的末尾&#xff0c;我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers &#xff0c;它原来是一个升序排列的数组&#xff0c;并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如&#xff0c;数组 [3,4…...

git教程(第一次使用)

一、gitee和github区别 二、git使用 下载地址 windows&#xff1a;https://gitforwindows.org/ mac&#xff1a;http://sourceforge.net/projects/git-osx-installer/ 1.git初次运行前的配置 &#xff08;1&#xff09;配置用户信息 git config --global user.name "…...

Autoware.ai1.14.0自动驾驶-Demo运行

Autoware.ai1.14.0自动驾驶-Demo运行 数据准备 下载数据&#xff1a; wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_data.tar.gz wget https://autoware-ai.s3.us-east-2.amazonaws.com/sample_moriyama_150324.tar.gz一定要注意解压文件是在.auto…...

AttributeConverter

AttributeConverter 是 JPA 中的一个接口&#xff0c;&#xff0c;用于实体属性和 数据库字段&#xff0c;&#xff0c;之间的转换&#xff0c;&#xff0c;&#xff0c;类似mybatis中的typeHandler AttributeConverter使用 定义一个类实现AttributeConverter接口&#xff0c…...

【逗老师的PMP学习笔记】8、项目质量管理

目录 一、规划质量管理1、质量管理的发展历史2、戴明环&#xff0c;PDCA理论3、【关键输入】事业环境因素4、【关键输入】成本效益分析5、【关键工具】质量成本6、【关键输出】质量管理计划7、插一嘴&#xff0c;项目的三个标准8、【关键工具】质量测量指标 二、管理质量1、【关…...

Zookeeper集群

目录 一、Zookeeper 概述 1&#xff09;Zookeeper 定义 2&#xff09;Zookeeper 工作机制 3&#xff09;Zookeeper 特点 4&#xff09;Zookeeper 数据结构 5&#xff09;Zookeeper 应用场景 6&#xff09;Zookeeper 选举机制 ●第一次启动选举机制 ●非第一次启动选举机…...

后端进阶之路——Spring Security构建强大的身份验证和授权系统(四)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ 解决算法&#xff0c;一个专栏就够了★ ★ 架…...

【香瓜说职场】第10月(2018.01.29)

自从17年4月份开始辞职创业&#xff0c;已经10个月了。聊聊近况。 一、博客被冻结 冻结原因是我把博客的积分放在淘宝店铺售卖&#xff0c;卖一周就被查了。 我的每个积分售卖0.5元&#xff0c;是全网最低&#xff0c;每个资源下载一般需要2、3个积分。售…...

​LeetCode解法汇总1749. 任意子数组和的绝对值的最大值

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣 描述&#xff1a; 给你一个整数数组 nums 。一个子数组 [numsl, numsl1, ..., numsr-1, numsr] 的…...

4.2、Flink任务怎样读取文件中的数据

目录 1、前言 2、readTextFile&#xff08;已过时&#xff0c;不推荐使用&#xff09; 3、readFile&#xff08;已过时&#xff0c;不推荐使用&#xff09; 4、fromSource(FileSource) 推荐使用 1、前言 思考: 读取文件时可以设置哪些规则呢&#xff1f; 1. 文件的格式(tx…...

Effective Java笔记(28)列表优于数组

数组与泛型相比&#xff0c;有两个重要的不同点 。 首先&#xff0c;数组是协变的&#xff08; covariant &#xff09; 。 这个词听起来有点吓人&#xff0c;其实只是表示如果 Sub 为 Super 的子类型&#xff0c;那么数组类型 Sub[ ]就是Super[ ]的子类型。 相反&#xff0c;泛…...

做BI领域的ChatGPT,思迈特升级一站式ABI平台

8月8日&#xff0c;以「指标驱动 智能决策」为主题&#xff0c;2023 Smartbi V11系列新品发布会在广州丽思卡尔顿酒店开幕。 ​ 后疫情时代&#xff0c;BI发展趋势的观察与应对 在发布会上&#xff0c;思迈特CEO吴华夫在开场致辞中表示&#xff0c;当前大环境背景下&#xf…...

ELFK——ELK结合filebeat日志分析系统(2)

目录 一、filebeat 二、ELFK 1.原理简介 2.在ELK基础上部署filebeat 一、filebeat Filebeat&#xff0c;轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat&#xff0c;并指定目录与日志格式&#xff0c;Filebeat 就能快速收集数据&#xff0c;并…...

webSocket 协议是什么

webSocket 协议是什么&#xff0c;能简述一下吗&#xff1f; websocket 协议 HTML5 带来的新协议&#xff0c;相对于 http&#xff0c;它是一个持久连接的协议&#xff0c;它利用 http 协议完成握手&#xff0c;然后通过 TCP 连接通道发送消息&#xff0c;使用 websocket 协议可…...

CentOS 7迁移Anolis OS 8

背景&#xff1a;生产环境客户要求操作系统国产化 操作系统&#xff1a;Centos7.9 内核&#xff1a;5.4.108 服务器可以联网&#xff0c;进行在线迁移&#xff1a; # 下载迁移工具软件源 wget https://mirrors.openanolis.cn/anolis/migration/anolis-migration.repo -O /etc/y…...

Transformer 立体视觉 Depth Estimation

1. Intro 立体深度估计具有重要的意义,因为它能够重建三维信息。为此,在左右相机图像之间匹配相应的像素;对应像素位置的差异,即视差,可以用来推断深度并重建3D场景。最近基于深度学习的立体深度估计方法已经显示出有希望的结果,但仍然存在一些挑战。 其中一个挑战涉及使…...

vue去掉所有输入框两边空格,封装指令去空格,支持Vue2和Vue3,ElementUI Input去空格

需求背景 就是页面很多表单输入框&#xff0c;期望在提交的时候&#xff0c;都要把用户两边的空格去掉 ❌使用 vue 的指令 .trim 去掉空格 中间会输入不了空格&#xff0c; 比如我想输入 你好啊 中国, 这中间的空格输入不了&#xff0c;只能变成 你好啊中国 ❌在提交的时候使用…...

认识FFMPEG框架

FFMPEG全称: Fast Forward Moving Picture Experts Group (MPEG:动态图像专家组) ffmpeg相关网站: git://source.ffmpeg.org/ffmpeg.git http://git.videolan.org/?pffmpeg.git https://github.com/FFmpeg/FFmpeg FFMPEG框架基本组件: AVFormat , AVCodec, AVDevice, AVFil…...

Vue3 大屏数字滚动效果

父组件&#xff1a; <template> <div class"homePage"> <NumRoll v-for"(v, i) in numberList" :key"i" :number"v"></NumRoll> </div> </template> <script setup> import { onMounted, r…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...