11级_Java_曹建波4.17 数组

来源:互联网 发布:数据加密系统 编辑:程序博客网 时间:2024/06/04 18:19

数组

数组是Java语言中的一种引用数据类型,它是一组相同类型的数据的有序集合。适用于集中管理类型相同、用途相近的多个数据。

 

Java的数组要求所有数组元素具有相同的数据类型。

一旦数组的初始化完成,数组在内存中所占的存储空间将被固定下来,因此数组的长度不可改变。

通过数组元素的索引号(或者说是下角标)来访问数组元素。

数组的维数可以理解为一个数组中数据组合的层次数,只有一个层次的数据组合而成的数组被称为一维数组。

     一维数组的结构:10个int型数据组成一维数组s

 

序号

0

1

2

3

4

5

6

7

8

9

元素名

s[0]

s[1]

s[2]

s[3]

s[4]

s[5]

s[6]

s[7]

s[8]

s[9]

元素值

56

67

32

85

35

97

45

64

80

78

 

 

     数组的长度:S数组中的元素个数

     数组元素的访问:数组名[元素下标]

一维数组的声明

格式:类型名 变量名[];   或  类型名[]  变量名;

 

 

例如,int[]arr;           double salary[];    

         String[] args;   Student  s[]; 

声明了数组类型变量,运行时系统只为引用变量分配引用空间,并没有创建对象,也不会为数组元素分配空间,因此尚不能使用任何数组元素。

声明数组类型变量时不允许指定数组的长度:
int[3] a;   × 

数组对象的创建和使用

在Java语言中通常使用关键字new创建数组对象,其语法格式为:new  类型名[n]

例如,int [] arr;

          arr=new int[3];    

访问数组元素的格式:数组名[元素下标]

例如,arr[0]=55;  arr[1]=78;  arr[2=arr[0]+arr[1];

数组对象的length属性

数组对象拥有一个有系统自动提供的特殊属性length(以只读的方式给出数组的长度),该属性为int类型,可直接访问,在遍历数组元素时非常有用。

例如,for(inti;i<arr.length;i++)    …

注意:Java 语言中数组长度并不属于其数据类型的组成部分,一个声明为int[]类型的变量a 可以指向一个长度为3的int[] 类型数组对象,也可以指向一个长度为5的int[] 类型数组对象,例如,int[] a; a=newint[3];          a=new int[5];  p 

数组的静态初始化

     如果在创建数组对象时已能确定其各元素的值,则可采用一种简化的书写方法来创建和初始化数组对象。

例如,int a[]={12,9,36};

 

 

例如,引用类型数组的静态初始化为:

Point[] p={ new Point(3,5),

                 new Point(-4,9),

                 new Point(2,-9),

                 new Point(-5,-2)   }; //6行代码是一条语句

 

1.定义一功能,获取数组中的最大值。

class Max
{
public int getMax(int[] arr)
{
int max = 0;
for (int i = 0; i < arr.length ; i++ )
{
if (arr[i]>max)
{
max = arr[i];
}
}
return max ;
}
}
class TestMax 
{
public static void main(String[] args) 
{
int[] arr = {1,5,2,6,9,4};
Max m = new Max();
System.out.println(m.getMax(arr));

}
}


2.对数组进行排序:选择排序,冒泡排序。


class Sort
{
//选择排序
public void selectSort(int[] arr)
{
for (int x = 0; x < arr.length-1 ; x++ )
{
for (int y = x+1; y < arr.length ; y++ )
{
if (arr[x]>arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
//冒泡排序
public void bubbleSort(int[] arr)
{
for (int x = 0; x < arr.length ; x++ )
{
for (int y = 0; y < arr.length-x-1 ; y++ )
{
if (arr[y]>arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
//遍历
public void printArry(int[] arr)
{
for (int i = 0; i < arr.length ; i++ )
{
if (i < arr.length-1)
{
System.out.print(arr[i]+",");
}else{
System.out.println(arr[i]);
}
}
}
}
class  TestSort
{
public static void main(String[] args) 
{
Sort s = new Sort();
int[] arr = {1,5,2,6,9,4};
System.out.print("排序前:");
s.printArry(arr);
//s.selectSort(arr);
s.bubbleSort(arr);
System.out.print("排序后:");
s.printArry(arr);
}
}
 

原创粉丝点击