(参考:尚硅谷_宋红康_Java语言基础)

文章目录

  • 数组的复制
  • 数组的反转
  • 数组的查找
    • 线性查找
    • 二分法查找

数组的复制

假定两个数组arr1与arr2,如果使用arr2 = arr1,但是这个并不能实现数组的复制,因为在此时堆空间当中只有一个数组,arr2 = arr1实现的仅仅是将arr1的地址复制给了arr2,让它们都指向堆空间的唯一的一个数组实体;

那如何真正意义上取实现数组的复制呢?

①其中一个方法就是使用遍历的额方式取逐个赋值

package de1;public class Test2 {public static void main(String[] args) {int[] array1,array2;array1 = new int[] {1,2,3,4,5};array2 = new int[array1.length];for(int i=0;i<array2.length;i++) {array2[i] = array1[i];}System.out.println("Array1:");for(int i:array1) {System.out.println(i);}System.out.println("Array2:");for(int i:array1) {System.out.println(i);}
}
}

②其他方式可以参考我以前写的博客
https://blog.csdn.net/solitudi/article/details/104014858

数组的反转

提供其中两种方式

package de1;public class Test2 {public static void main(String[] args) {int[] arr = new int[] {1,2,3,4,5};//数组的反转for(int i =0;i < arr.length/2;i++) {int temp = arr[i];arr[i] = arr[arr.length - i - 1];arr[arr.length - i - 1] = temp;}//数组的遍历for(int x:arr) {System.out.print(x+" ");}
}
}

②与上面方法类似,当然还可以定义两个数组,只是比较麻烦

for(int i =0,j=arr.length-1;i<j;i++,j--){int temp = arr[i];arr[i] = arr[arr.length - i - 1];arr[arr.length - i - 1] = temp;
}

数组的查找

线性查找

说简单点就是按顺序去查找

package de1;public class Test2 {public static void main(String[] args) {String[] arr = new String[] {"aa","bb","cc","dd"};String dest = "bb";boolean isFlag = true;for(int i=0;i<arr.length;i++) {if(dest.equals(arr[i])) {System.out.println("找到了,位置在:"+i);isFlag = false;break;}}if(isFlag) {System.out.println("抱歉,没有找到");}
}
}

二分法查找

前提:所要查找的数组必须有序

package de1;public class Test2 {public static void main(String[] args) {int[] arr1=new int[] {-6,-3,0,1,3,5,9,56,58,99};boolean isFlag = true;int dest1 = 3;//初始的首索引int head = -3;//初始的末索引int end = arr1.length - 1;while(head<=end) {int mid = (head + end)/2;if(dest1 == arr1[mid]) {System.out.println("找到啦,索引为"+mid);isFlag = false;break;}else if(arr1[mid] > dest1) {end = mid -1;}else {head = mid + 1;}}if(isFlag) {System.out.println("抱歉,没有找到");}
}
}

我的Java学习之路(第十九天)------ 数组的复制、反转、查找(线性查找、二分法)相关推荐

  1. Java学习之路(十):枚举类和注解

    一.枚举类的使用 当类的对象只有有限个,确定的(此类称为枚举类),如 星期:周一,- , 周日 性别:男(man),女(woman) 支付方式:Cash(现金),WeChatPay(微信支付),Ali ...

  2. JAVA学习之路:不走弯路,就是捷径(一)

      0.引言 在ChinaITLAB导师制辅导中,笔者发现问得最多的问题莫过于"如何学习编程?JAVA该如何学习?".类似的问题回答多了,难免会感觉厌烦,就萌生了写下本文的想法.到 ...

  3. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解) * A:什么是计算机?计算机在生活中的应 ...

  4. Java学习之路02_选择方向_旺旺老师

    提示:请您先阅读第一部分:Java学习之路01_软件江湖_旺旺老师 第二部分:帮派之争 就好像玩游戏要先选择角色种族,进入江湖要先选择帮派,那搞软件开发也要选择方向.个人总结的软件开发的方向:嵌入式开 ...

  5. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  6. java学习之路目录(已完结)

    java学习之路目录(持续更新中-) 第一阶段 javaSE(完结) 序号 标题 内容 001 java初识 java语言特点.体系结构.运行机制 002 java SE基础语法 注释.关键字.变量. ...

  7. java学习之路2--简单工厂模式实现饮料自动贩卖机

    java学习之路2 用简单工厂模式实现饮料自动贩卖机 功能简介 具体实现 1.简单工厂模式 2.代码 总结 用简单工厂模式实现饮料自动贩卖机) 功能简介 接收用户输入的信息,选择购买的饮料. 可供选择 ...

  8. Java学习之路——接口

    Java学习之路--接口 概述 总所周知,我们是父母的孩子.我们的身上既继承了爸爸的基因也继承了妈妈的基因.这就是多继承. 然而在 Java 程序中,是不支持多继承的.Java 仅仅支持单继承.但是接 ...

  9. 我的Java学习之路2009-11-17

    -------------------------------2009年3月19日开始----------------------------- 下载JDK Myeclipse Netbeans JB ...

  10. Java学习之路1——安装JDK1.8||安装idea2022||Java项目创建【重拾Java】

    Java学习之路1--安装JDK1.8||安装idea2022[重拾Java] 前言 安装 安装JDK1.8 安装idea2022(JetBrains Toolbox) Java项目创建 创建 项目结 ...

最新文章

  1. Win10 + VS2017 15.5.6 环境下解决 Python 3.6 环境无法刷新DB的问题
  2. 在iOS平台上使用TensorFlow教程(上)
  3. [知识图谱实战篇] 四.HTML+D3+CSS绘制关系图谱
  4. python列表添加数字_Python-识别列表中的连续数字组
  5. g++编译时的常用选项说明
  6. BZOJ1036[ZJOI2008]树的统计——树链剖分+线段树
  7. bzoj 1059: [ZJOI2007]矩阵游戏(二分匹配)
  8. Linux虚拟机添加新硬盘的全程图解
  9. CSDN 如何删除自己不用的分类(亲测有效!)
  10. UGUI的Drag实现鼠标拖拽
  11. android can为啥能发收不到数据_大数据显示:报读MBA已是未来竞争力提升的必然趋势...
  12. mySQL字段中斜杠_MySQL 列名中包含斜杠或者空格的处理方法
  13. 嗖嗖移动营业大厅(Java面向对象编程)
  14. JXT 导出数据到EXCEL
  15. 9820E ClassicHome分析总结
  16. Laya 实操二:原始宽高+反转+九宫格+Handler
  17. Quality 是什么?
  18. 如何将图片素材亮度调高照片光线调亮ps教程ps学习ps基础课程教程
  19. win7系统补丁服务器,win7怎么批量卸载系统更新补丁KB? win7快速删除系统补丁的技巧...
  20. 用ChatGPT创建虚拟小镇,或许《西部世界》已经成为现实

热门文章

  1. ubuntu安装CD-HIT
  2. java夯实基础系列:反射
  3. 我的2018年竞赛之路总结
  4. 普氏分析法的输入和输出实例,matlab图像处理
  5. 前端基础入门之css像素与视口和媒体查询
  6. 《来自Percal25号行星的哥顿人》
  7. IELTS学习(001) - 语法构成原理
  8. 【STM32学习笔记】(15)——窗口看门狗(WWDG)详解
  9. EDM邮件营销ip预热
  10. Ajax并不是一种技术(Ajax入门好文章)