Java中的数组,java开发面试笔试题


我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。
扫描二维码或搜索下图红色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);

         }



 

Java中的数组,java开发面试笔试题_第1张图片

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

实例为



 

 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; iarr[j]){

                       int temp = arr[j];

                       arr[j]  = arr[i];

                      arr[i] = temp;

                   }

            }

}





 

 

冒泡排序 升序排列





 

for(int i=0; iarr[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为-1

    while(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 ); 

 }

 



 

显示结果为

Java中的数组,java开发面试笔试题_第2张图片
 

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




 

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]



 

显示结果为

Java中的数组,java开发面试笔试题_第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); 
       
         }
   }
}



 

显示结果为

Java中的数组,java开发面试笔试题_第4张图片

④输入一个数字,在数组中查找,若有输出下标,若没有输出-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中的数组,java开发面试笔试题_第5张图片

 

⑤编写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; iarr[ 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;                // 暂存num

               

                                                                             

               int 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[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)