我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。
扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。

数组是在内存中存储相同数据类型的连续的空间

声明一个数组就是在内存空间中划出一串连续的空间

数组名代表的是连续空间的首地址

通过首地址可以依次访问数组所有元素

元素在数组中的排序叫做下标从零开始

数组的使用

数组长度一旦声明,不可改变不可追加

声明一个int类型的数组

int[ ] arr; 或int arr[ ]

给数组分配空间

arr=new int[5];

给数组赋值

arr[0]=1; 0代表的是数组的第1个元素 ,元素下标为0

arr[1]=1; 1代表的是数组的第2个元素 ,元素下标为1

访问数组数据 ,使用数组下标访问 c=arr[4];

数组声明缩写

int[ ] arr={12,3,4,8,5,6,6,7,8,8,9,8};int [ ]  arr1=new int[ ]{12,3,4,8,5,6,6,4};

new int[ ]的[ ]一定不能放内存大小

使用循环给数组赋值

示例为

 int[ ]  arr=new int[5];for (int i = 0; i < arr.length; i++) {System.out.println("数组第"+(i+1)+"个值为"+i);}

使用循环遍历给数组赋值,输出数组

实例为

 int[ ] arr={1,3,6,5,6,7,84,55,5};for (int num:arr) {System.out.println(num);}

显示结果为

数组中常用来排序的两种方法

冒泡排序

例子:

public static void main(String[] args) {

实现学生成绩排序并显示学生成绩列表

int [ ] arr = {78,89,67,98,90,56,88};

N个数的数组,需要比较N-1轮

for(int i=0; i<arr.length; i++){for(int j=i; j<arr.length; j++){if(arr[i]>arr[j]){int temp = arr[j];arr[j]  = arr[i];arr[i] = temp;}}}

冒泡排序 升序排列

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

二分法排序

二分法查找

    int start = 0;                              // 默认起始坐标int end = arr.length-1;               // 默认结尾坐标int index = -1;                           // 找不到默认index为-1while(start<=end){int middle = (start+end)/2;     // 计算中间下标if(num == arr[middle]){index = middle;break;}if(num > arr[middle]){start = middle + 1;}if(num < arr[middle]){end = middle - 1;}} System.out.println(index);}}

下面是一些实例.

① 做一个购物清单,手动输入金额,输出是要显示总金额

Scanner in=new Scanner( System.in);double sum=0;double[ ]  arr=new double[5];for (int i = 0; i < arr.length; i++) {System.out.print("请输入第"+(i+1)+"笔购物金额:");arr[i]=in.nextDouble();sum+=arr[i];}System.out.println("序号         金额");for (int i = 0; i < arr.length; i++) {System.out.println((i+1)+"        "+arr[i]);}System.out.println("总金额:"+sum ); }

显示结果为

②输入四家店的价格,并找出最小价格

Scanner in=new Scanner(System.in);int[] arr=new int[4]; System.out.println("请输入四家店的价格");for (int i = 0; i <4; i++) {System.out.print("第"+(i+1)+"店的价格为:");arr[i]=in.nextInt();}  for (int j = 0; j < arr.length-1; j++) {if (arr[j]<arr[j+1]) {arr[j+1]=arr[j];}else {arr[j+1]=arr[j+1];}   }System.out.println("最低价格是:"+arr[3]);}

显示结果为

③将一个数组从小到大排列

 int[]  arr={56,45,99,82,91,81};int max;int  m;for (int i = 0; i < arr.length-1; i++) {for (int j = 0; j < arr.length-1-i; j++) {if (arr[j]>arr[j+1]) {int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}for (int a: arr) {System.out.println(a); }}
}

显示结果为

④输入一个数字,在数组中查找,若有输出下标,若没有输出-1

Scanner in=new Scanner(System.in);int[] arr={12,34,46,68,32,35,75,48,25}; System.out.println("输入一个数字");int sz=in.nextInt();for (int i = 0; i < arr.length; i++) {if (sz==arr[i]) {System.out.println("数字下标为"+i);return;}}System.out.println("-1");

显示结果为

⑤编写JAVA程序,实现两个数组的合并,并按升序排列合并后的数组
假定现有两个数组,分别为:
int[ ] arr1={3, 1, 23};
int[ ] arr2={27, 7, 2};
设计程序,将两个数组合并成一个数组,并按升序排列合并后的数组,输出合并前和合并后的数组信息

       int[ ] arr1 = {3, 1, 23};int[ ] arr2 = {27, 7, 2};int[ ] arr = new int[arr1.length+arr2.length];    // 1. 声明一个数组,长度等于两个数组的长度和for(int i=0; i<arr1.length; i++){                         // 2. 遍历两个数组arr[i] = arr1[i];}for(int i=0; i<arr2.length; i++){arr[arr1.length+i] = arr2[i];}for(int i=0;  i <arr.length-1;  i++){                       // 3. 对新数组排序for(int j=0;  j <arr.length-1-i;  j++){if( arr [ j ]>arr[ j+1 ]){int temp  =  arr[ j ];arr [ j ]  =  arr[ j+1 ];arr[ j+1 ] =  temp;}}}System.out.println(Arrays.toString(arr));

显示结果为

⑥用数组,判断一个数字,是不是回文数。

 System.out.print("请输入一个数组:");Scanner in = new Scanner(System.in);long num =  in.nextLong();long old = num;                // 暂存numint count = 0;                   // num有几位,定义一个几位的数组。  求出num的位数while(num>0){num /= 10;count++;}int[] arr = new int[count];count = 0;                  // 不断取出数字的每一位,依次放入数组中while(old>0){arr[count] = (int)old % 10;old /= 10;count ++;}for(int i=0,j=arr.length-1; i<=j ; i++,j--){ // 依次比较数组的首尾。 有任意一位不相等,就不是回文数if(arr[i] != arr[j]){System.out.println("不是回文数");return;}}System.out.println("是回文数");

显示结果为

⑦ 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组

 //            Scanner in=new Scanner(System.in);             //设置输入数组//            int [] arr;//            System.out.println("输入数组");//            for (int i = 0; i < arr.length; i++) {//               int arr[i]=in.nextInt();int [   ] arr = {5,3,7,1,0,6,9,2};int max = arr[0] , maxIndex = 0;           // 找出最大元素的下标for(int i=0; i<arr.length; i++){if(max < arr[i]){max = arr[i];maxIndex = i;}}if( maxIndex != 0 ){int temp = arr[0];arr[0] = arr[maxIndex];arr[maxIndex] = temp;}int min = arr[0] , minIndex = 0;            //找出最小元素的下标for(int i=0; i<arr.length; i++){if(min > arr[i]){min = arr[i];minIndex = i;}}if(minIndex != (arr.length-1)){int temp = arr[arr.length-1];arr[arr.length-1] = arr[minIndex];arr[minIndex] = temp;}System.out.println(Arrays.toString(arr));}

显示结果为

转载:https://www.cnblogs.com/fylong/p/8677804.html

推荐内容:
知名互联网公司校招 Java 开发岗面试知识点解析
Java中对List去重, Stream去重
Java高级面试题解析(一)
Java 基础面试题 汇总
java开发常用技术
税友集团Java开发实习生面试
【Java】留下没有基础眼泪的面试题
Java多线程面试题整理
两道面试题,带你解析Java类加载机制
java面试必备

Java中的数组,java开发面试笔试题相关推荐

  1. python开发面试题目_Python测试开发面试笔试题

    Python 测试开发面试笔试题 一,中文单项选择题(30 分,每个 3 分) 1.下列哪个语句在 Python 中是非法的? A.x = y = z = 1 B.x = (y = z + 1) C. ...

  2. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(4)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  3. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(8)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

  4. Java中HashMap和TreeMap的区别深入理解,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  5. 超详细的Java面试题总结之JavaWeb基础知识总结,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  6. Java 接口基础详解,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  7. Java的五子棋实现,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  8. 深入理解Java反射+动态代理,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起在群里探讨技术. 答: ...

  9. java-pdf转word,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索hairyang001加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各 ...

最新文章

  1. Linux下DNS轮询与Squid反向代理结合
  2. 剑灵总显示服务器断开连接,求解一分钟“与服务器断开连接”问题
  3. python字典可以切片吗_7.map(感觉跟python中的字典有点像)数组,切片(make)傻傻分不清楚,多多指点...
  4. 全球及中国昆虫类宠物食品行业竞争潜力与盈利价值分析报告2022版
  5. [Silverlight]使用PagedCollectionView配合复选框实现动态筛选的解决方案
  6. 微信小程序隐藏菜单栏目下转发按钮的几个方法
  7. android 验证码图片识别_图片验证码的识别技术
  8. AcWing 1969. 品种邻近(滑动窗口+枚举)
  9. VLAN aggregation(vlan聚合)配置
  10. 直接使用临时变量导致的一个bug记录
  11. 数组字符串转int数组_7.5 C++字符串数组 | 字符串数组输出
  12. 中国智能手机行业的江湖事
  13. 涉密计算机 桌面 及 屏保,符合国家保密要求的涉密计算机屏幕保护程序启动时间要求是不超10分钟 - 作业在线问答...
  14. 项目实施过程中的标志性事件——里程碑
  15. C. Minimum Notation #823 div2
  16. 测试开发是什么?为什么现在那么多公司都要招聘测试开发?
  17. 第三人称和第一人称互相切换【Low版】
  18. 【SAM】51Nod1647 小Z的Trie
  19. 生物大分子的计算机模拟就业,生物大分子体系结合自由能及构象变化的计算机模拟...
  20. Unity3d UGUI基础控件使用(一)

热门文章

  1. Java程序员,上班那点事儿
  2. [DP思考录]向左走,向右走: Observer模式 VS Mediator模式
  3. win10怎么设置默认浏览器_vscode如何设置默认打开的浏览器为Chrome?
  4. 互联网公司的安全风险
  5. (41)FPGA面试题FPGA详细设计流程
  6. Verilog inout语句使用方法及技巧
  7. plsql提示列快捷键_PLsql快捷键
  8. 数字图像处理(五)——形态学
  9. Linux的capability深入分析(2)
  10. java 文件url地址_简单的解析文件,取URL地址,并根据地址抓下页面