数组相关练习

news2024/12/29 10:15:57

数组练习

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

将数组转化成字符串

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.coloradmin.cn/o/853219.html

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

相关文章

机器学习中训练数据的重要性

人工智能技术发展至今&#xff0c;训练数据的重要性已经是我们老生常谈的问题。在重声训练数据为什么重要之前&#xff0c;我们先重新回顾下AI技术大爆炸的三大初始概念&#xff1a;机器学习是什么&#xff1f;人工智能是什么&#xff1f;训练数据又是什么&#xff1f; 机器学…

《Kali渗透基础》14. 无线渗透(四)

kali渗透 1&#xff1a;相关工具1.1&#xff1a;Aircrack-ng1.1.1&#xff1a;airmon-ng1.1.2&#xff1a;airodump-ng1.1.3&#xff1a;aireplay-ng1.1.4&#xff1a;airolib-ng1.1.5&#xff1a;bessid-ng 1.2&#xff1a;JTR1.3&#xff1a;Evil Twin Attacker1.4&#xff1…

Vue 中使用 WebWorker

目录 安装 loader 应用场景 打包时错误处理 安装 loader npm install worker-loader -D 如果直接把worker.js放到public目录下&#xff0c;则不需要安装loader vue.config.js const { defineConfig } require(vue/cli-service)module.exports defineConfig({transpileDe…

JS逆向系列之猿人学爬虫第14题-备而后动-勿使有变

文章目录 题目地址参数分析参考jspython 调用往期逆向文章推荐题目地址 https://match.yuanrenxue.cn/match/14题目难度标的是困难,主要难在js混淆部分。 参数分析 初始抓包有无限debugger反调试,可以直接hook 函数构造器过掉无限debugger Function.prototype.__construc…

C++异常体系

文章目录 一.C对运行时错误的处理方式函数调用链中的异常机制 二.异常的使用规范三.C异常体系C标准库中的异常体系 四.关于C异常的注意事项 一.C对运行时错误的处理方式 传统的C语言处理运行时错误采用的是assert或者错误码的方式,这种异常处理机制对错误信息的定位和描述能力…

ArcGIS Pro技术应用(暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合)

GIS是利用电子计算机及其外部设备&#xff0c;采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲&#xff0c;它是在一定的地域内&#xff0c;将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来&#xff0c;达到对地理和属性信息的综合管理。GIS的…

lc137. 只出现一次的数字 II

数组排序&#xff0c;既和前不一样又和后不一样的就是唯一的一个 public static int numberOnce(int[] nums) {Arrays.sort(nums);if (nums.length > 2 && nums[0] ! nums[1]) {//避免只有一个元素的数组return nums[0];}if (nums.length > 2 && nums[nu…

994. 腐烂的橘子

题目描述&#xff1a; 主要思路&#xff1a; 宽度优先搜索&#xff0c;利用队列实现。 需要注意的是放进队列的时候就需要标记&#xff0c;而不是取出的时候再标记。 class Solution { public:int orangesRotting(vector<vector<int>>& grid) {int ngrid.siz…

解决Spring Boot 2.6及之后版本取消了循环依赖的支持的问题

目录 1、问题&#xff1a; 2、报错&#xff1a; 3、解决方案&#xff1a; 1、问题&#xff1a; 循环依赖指的是两个或者多个bean之间相互依赖,形成一个闭环。直接表现为两个service层互相调用对方。 此时会遇到以下问题&#xff1a; 2、报错&#xff1a; 当启动项目时&…

Smartbi 权限绕过漏洞复现(QVD-2023-17461)

0x01 产品简介 Smartbi大数据分析产品融合BI定义的所有阶段&#xff0c;对接各种业务数据库、数据仓库和大数据分析平台&#xff0c;进行加工处理、分析挖掘和可视化展现&#xff1b;满足所有用户的各种数据分析应用需求&#xff0c;如大数据分析、可视化分析、探索式分析、复杂…

odoo-033 比较 float 浮点数大小之精度坑

文章目录 前提原因问题 前提 产品单位精确到6位小数生产制造模块&#xff0c;重写了完成的方法&#xff0c;在点击完成的时候报错如下&#xff1a; &#xff08;解释下&#xff1a;就是很奇怪&#xff0c;明明都是必填字段&#xff0c;也都赋值了但是就是拿不到值&#xff09;…

2.若依前后端分离版第一个增删查改

1.介绍 若依提供了代码生成功能&#xff0c;单表的CRUD可以直接用若依框架提供的代码生成进行创建。 2.实现 2.1 在数据库创建业务表test_teacher 2.2 生成代码 运行系统&#xff0c;进入菜单[系统工具]-》[代码生成],点击导入按钮&#xff0c;选择需要生成代码的表进行导…

Redis储存结构

Redis怎么储存的 这个redisDb是数据库对象 里面的其他字段忽略了 然后里面有个dict列表(字典列表) 我们随便来看一个redisObject 区分一下子啊 他这个dict里面没有存redisObject的对象 也没有存dict对象 它只是存了个数据指针 你看那个redis每个底层编码 抠搜的 这块要是再保存…

信道复用技术

信道划分介质访问控制将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔离开来&#xff0c;把时域和频域资源合理地分配给网络上的设备 多路复用&#xff1a;就是将多个信号组合在一条物理信道上进行传输&#xff0c;使多个计算机或终端设备共享信道资源&#xff0c…

分班查询系统学生信息在线采集方法和具体操作教程

作为教师&#xff0c;特别是临近新学年&#xff0c;我们经常需要进行学生分班工作&#xff0c;这是一项繁琐但非常重要的工作。为了提高工作效率&#xff0c;我们可以利用易查分轻松生成一个学生分班查询系统。本文将介绍如何利用易查分设计和开发这样一个系统。 我们可以选择使…

vue+element 下载压缩包和导出

export function goodsInspectionReportDwnloadZip (params) {return axios({url: "/warehouse-entry-server/v1/goodsInspectionReport/downloadZip",method: "get",params,responseType: "blob"}) } //下载handleDownloadFile() {if (!this.$r…

【LeetCode】删除并获得点数

删除并获得点数 题目描述算法分析编程代码空间优化 链接: 删除并获得点数 题目描述 算法分析 编程代码 class Solution { public:int deleteAndEarn(vector<int>& nums) {const int N 10001;int arr[N] {0};for(const auto& n : nums){arr[n]n;}vector<in…

小红书数据分析丨现实版模拟人生,这届网友热衷于“云开店”?

近期&#xff0c;小红书出现的一个神秘的热心群体&#xff0c;他们经常活跃在各种小店店主发布的求助帖评论区中&#xff0c;积极地帮助店主出谋划策&#xff0c;寻找小店经营的优化之道&#xff0c;成功帮助小店成功转亏为盈&#xff01;江湖人称一一云股东。小红书话题#爱上帮…

微信小程序启动自动检测版本更新,检测到新版本则提示更新

UpdateManager 对象&#xff0c;用来管理更新&#xff0c;可通过 wx.getUpdateManager 接口获取实例 在app.js中的示例代码 onShow() {// 获取小程序更新机制的兼容&#xff0c;由于更新的功能基础库要1.9.90以上版本才支持&#xff0c;所以此处要做低版本的兼容处理if (wx.c…

java serialport 串口助手源码 RXTX java 11还崩溃。java串口支持jdk11,jdk13,jdk14版本win10 64位系统bug修复库nrjavaserial好用

Java提供了一些API来支持串口通信。主要包括&#xff1a; javax.comm&#xff1a;Java Communications API&#xff0c;是一个用于串行通信的Java API。然而&#xff0c;这个API已经很长时间没有更新了&#xff0c;而且只支持32位的Windows系统。官网已经删。 RXTX&#xff1a;…