1:二维数组定义格式?
数据类型[][] 数组名称 ;
数据类型[] 数组名称[] ;
分别列举三种格式
int[][] arr = new int[3][2] ;
int[][] arr = new int[3][] ;
int[] arr[] = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
简化为:int[] arr[] = {{1,2,3},{4,5,6},{7,8,9}};
注:面试题:
数组中有没有length()? 没有,只有length属性
String类中有没有length()? String有length(),获取字符串的长度
集合中有没有length()? 没有,获取集合长度,size()
2:二维数组遍历求和思想以及杨辉三角
A:给定数组,int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}完成遍历操作,要求最终[1,2,3,4,5,6,7,8,9]
class No2{
public static void main(String[] args) {
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
print(arr);
}
public static void print(int[][] arr) {
System.out.print("[");
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[1].length;j++) {
if(i==arr.length-1&&j==arr[i].length-1)
System.out.print(arr[i][j]+"]");
else
System.out.print(arr[i][j]+",");
}
}
}
}
B:公司年销售额求和
某公司按照季度和月份统计的数据如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
class No3{
public static void main(String[] args) {
int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
print(arr);
}
public static void print(int[][] arr) {
int sum=0;
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[1].length;j++) {
System.out.print(arr[i][j]+" ");
sum+=arr[i][j];
}
System.out.println() ;
}
System.out.println("总销售额为:"+sum);
}
}
C:打印杨辉三角形(行数可以键盘录入)
class No3{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;
System.out.println("请输入一个行数:");
int a=sc.nextInt();
int[][] arr=new int[a][a];
for(int i = 0 ; i < arr.length; i ++){
arr[i][0] = 1 ;
arr[i][i] = 1 ;
}
for(int i=2;i<arr.length;i++) {
for(int j=1;j<i-1;j++) {
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
for(int i = 0 ; i < arr.length ; i ++){
for(int j = 0 ; j <=i ;j++){
System.out.print(arr[i][j] +"\t") ;
}
System.out.println() ;
}
}
}
3.简述冒泡排序思想,并使用记事本完成代码实现!
思想:两两比较,大的往后放,最大值出现在最大索引处
每一次比较完,下一次比较的时候就会少一个元素的比较。
import java.util.Scanner;
class BubbleSort {
public static void main(String[] args) {
int[] arr= {12,4,45,24,67,89};
System.out.println("排序前: ");
print(arr);
bubbleSort(arr);
System.out.println("");
System.out.println("排序后: ");
print(arr);
}
public static void print(int[] arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
public static void bubbleSort(int[] arr){
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;
}
}
}
}
}
4.键盘录入5个数的一维数组,然后查询指定元素在数组中第一次的索引值 举例:{10,20,3,45,89} ; 45元素在书中第一次出现的索引值是3
class Index{
public static void main(String[] args) {
int[] arr= {10,20,3,45,89};
System.out.println("该元素在数组中第一次出现的索引值是:"+print(arr,45));
}
public static int print(int[] arr,int val) {
for(int i=0;i<arr.length;i++) {
if(arr[i]==val){
return i;
}
}
return -1;
}
}
5.请将’A’,‘B’,'C’存入数组,然后再输出 (提示:定义字符数组)
class No4{
public static void main(String[] args) {
char[] arr= {'A','B','C'};
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}
6.请将"我" “爱” "你"存入数组,然后正着和反着输出,(提示:定义字符串数组)
class No5{
public static void main(String[] args) {
String[] arr = {"我","爱","你"} ;
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println("");
for(int i=2;i>=0;i--) {
System.out.print(arr[i]+" ");
}
}
}
7.键盘录入6个数据,获取数组中的最大值。
import java.util.Scanner;
class No6{
public static void main(String[] args) {
int[] arr=new int[6];
Scanner sc=new Scanner(System.in);
for(int n=0;n<arr.length;n++) {
System.out.println("请输入第"+(n+1)+"个元素:");
arr[n]=sc.nextInt();
}
System.out.println("arr数组中的元素为");
for(int n=0;n<arr.length;n++){
System.out.print(arr[n]+",");
}
int max=arr[0];
for(int m=1;m<arr.length;m++) {
if(max<arr[m]) {
max=arr[m];//还可以写成max=max>arr[i]?max:arr[i];
}
}
System.out.println();
System.out.println("数组中的元素最大值是"+max);
}
}
8、逆序输出数组
class reverse{
public static void main(String[] args) {
int[] arr= {10,39,59,34,89,56};
System.out.println("排序前: ");
print(arr);
System.out.println(" ");
nixu(arr);
System.out.println("排序后: ");
print(arr);
}
public static void print(int[] arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
public static void nixu(int[] arr) {
for(int start=0,end=arr.length-1;start<=end;start++,end--) {
int temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
}
}
面试题:
面试题: (考点:Java中的基本数据类型和引用数据类型作为参数传递的区别)
看程序,写结果
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b);
change(a,b);
System.out.println("a:"+a+",b:"+b);//a?,b? 20,40
//10,20
int[] arr = {1,2,3,4,5};
change(arr);
System.out.println(arr[1]); //2,4
}
public static void change(int a,int b){
System.out.println("a:"+a+",b:"+b);
a = b;
b = a + b;
System.out.println("a:"+a+",b:"+b);
}
public static void change(int[] arr) {
for(int x=0; x<arr.length; x++) {
if(arr[x]%2==0) {
arr[x]*=2;
}
}
}
*/
class ArgsDemo{
public static void main(String[] args){
int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b); //10,20
change(a,b);
System.out.println("a:"+a+",b:"+b);//a:10,b:20
int[] arr = {1,2,3,4,5};
change(arr);
System.out.println(arr[1]); //4
}
//执行change方法
public static void change(int a,int b){//基本数据类型作为参数进行传递
System.out.println("a:"+a+",b:"+b);//10,20
a = b;
b = a + b;
System.out.println("a:"+a+",b:"+b);//20,40
}
public static void change(int[] arr) {
for(int x=0; x<arr.length; x++) {
if(arr[x]%2==0) {
arr[x]*=2;
}
}
}
}