第四章数组

本文介绍了Java中数组的相关知识,包括数组的类型、元素类型一致性、数组长度的固定性、下标的范围、数组作为引用类型及对象特性、初始化方式、代码示例以及冒泡排序和可变参数的应用。通过上机练习加深了对数组操作的理解。
摘要由CSDN通过智能技术生成

1.数组的类型可以为任意类型吗?
可以是任意类型

2.数组中的元素的类型必须是相同的吗? 数组中的元素是有序的吗?
数组中元素的类型必须是相同的

数组中元素是有序的, 索引的顺序

3.数组的长度可变不? 数组的长度使用哪个属性?

数组一旦声明其长度不能更改
数组的长度属性是length

4.数组元素下标(或索引)的范围是?

范围是0-数组名.length-1

5.数组也是引用类型吗? 数组也是对象,这句话对吗?

数组是引用数据类型
数组也是对象这句话正确

6.数组中的元素就像对象中的成员变量一样,初始化方式也一样。这句话对吗?
正确

7.【上机】数组的三种初始化方式是什么? 并测试练习相关代码

静态初始化
int [] a={1,2,3};

动态初始化
int [] a=new int[2];
a[0]=1;
a[1]=2;

默认初始化
int [] a=new int[2];//0,0

8.数组的静态初始化代码,下面代码有没有不合理的地方:

Dog[] dogs2 = {
new Dog(“大黄”,1),
new Dog(“小强”,2),
};
有,new Dog(“小强”,2)后的逗号应去掉

9.完成如下代码:

char[] s;
s = new char[26];
for ( int i=0; i<26; i++ ) {
  s[i] = (char) (’A’ + i);
  System.out.println(s[i]); 
// System.out.println(“s[” + i + “]=” + s[i]); 
}

10.下面的数组定义哪些是正确的?

A: int a[][] = new int[3,3];
B: int a[3][3] = new int[][];
C: int a[][] = new int[3][3];
D: int []a[] = new int[3][3];
E: int[][]a = new int[3][3];

CDE是正确的

11.请在下面语句中找出一个正确的。

A. int arr1[2][3];
B. int[][] a2 = new int[2][];
C. int[][] arr2=new int [][4];
D. int arr3[][4]= new int [3][4];
B正确

12.【上机】定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No” 。

public class Test{
  public static boolean isFind(String [] arr,String word){
    boolean isFlag=false;
    for(int i=0;i<arr.length;i++){
    if(word.equals(arr[i])){
    isFlag=true;
    break;
    }
  }
    return isFlag;
}


public static void main(String [] args){
  String[] arr={“hello”,”world”,”java”,”html”,”oracle”,
  ”apple”,”orange”,”banana”,”red”,”green”};
  System.out.println(isFind(arr,args[0])?”Yes”:”No”);
  }
}

13.冒泡排序的基本思路

1.整个数列分成两部分:前面是无序数列,后面是有序数列
2.初始状态下,整个数列都是无序的,有序数列是空
3.如果一个数列有n个元素,则至多需要n-1趟循环才能保证数列有序
4.每一趟循环可以让无序数列中最大数排到最后,(也就是说有序数列的元素个数增加15.每一趟循环都从数列的第一个元素开始进行比较,依次比较相邻的两个元素,比较到无序数列的末尾即可(而不是数列的末尾)
6.如果前一个大于后一个,交换
7.根据是否发生交换判断数组是否已经有序

14.使用冒泡排序完成数组元素的排序

public static int[] bubbleSort(int[] a){
      int length=a.length;
      int temp;
      for(int i=0;i<a.length;i++){
          for(int j=0;j<a.length-i-1;j++){//循环0~a.length-i-1次,每次将最大的放在最后
              if(a[j]>a[j+1]){//交换元素
                  temp=a[j];
                  a[j]=a[j+1];
                  a[j+1]=temp;
              }
          }
      }
      return a;
  }

15.可变参数的作用及其用法
**作用:**适用于参数个数不确定、类型确定的情况,java把可变参数当做数组处理
用法:
只能出现在参数列表的最后
位于变量类型和变量名之间,前后有无空格都可以
调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数

17.【上机】用二重循环求出二维数组b所有元素的和:

int[][] b={{11},{21,22},{31,32,33}}
int sum=0;
for(int i=0;i<b.length;i++){
  for(int j=0;j<b[i].length;j++){
  sum+=b[i][j];
  }
}
System.out.println(“和为:+sum)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值