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行代码是一条语句
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);
}
}
- 11级_Java_曹建波4.17 数组
- 11级_Java_曹建波4.18 foreach&二维数组
- 11级_Java_曹建波4.07 方法
- 11级_Java_曹建波3.29 控制流程
- 11级_Java_曹建波4.11 接口
- 11级_Java_曹建波5.02 GUI程序设计
- 11级_Java_曹建波5.04 事件适配器
- 11级_Java_曹建波5.10 字符流
- 11级_Java_曹建波5.14 字节流
- 11级_Java_曹建波5.18 多线程
- 11级_Java_曹建波5.30 WHERE子句
- 11级_Java_曹建波6.05 索引
- 11级_Java_曹建波6.08 存储过程
- 11级_Java_曹建波6.12 触发器
- 11级_Java_曹建波6.14 事务
- 11级_Java_曹建波6.15 JDBC开发
- 11级_Java_曹建波9.03 多线程
- 11级_Java_曹建波9.04 多线程2
- linux网络编程之:TCP[13] flag combinations[转]
- stringstream用法(载)
- shape画listview分割线
- 第九周实验报告(三)
- BIRT 报表的动态交互性
- 11级_Java_曹建波4.17 数组
- 第9周任务4(建立一个二维数组类,完成矩阵的输入、输出、加、减、相等判断操作)
- 自考让我成就梦想
- spring 依赖注入方式总结详解
- birt 开发整理。 一些小技巧
- 简单看了一下源码的实现,这里贴一点个人觉得比叫重要的代码。
- git 使用详解(8)-- 分支HEAD
- Facebook成功分析
- Linux的用户和组