数组
数组:是一组相关变量的集合。
数组定义: int i【100】, 只是一个伪代码,只是表示含义的。
一维数组
要使用java的数组,必须经过两个步骤:
- 声明数组 :
int score[] = null; - 为数组开辟空间:
score = new int[3];
当然也可以使用一个步骤来完成:
int score[] = new int[10];
java的数据类型分为两大部分:
- 基本数据类型: int 、long,操作的时候本身就是一个具体的内容
- 引用数据类型:数组、类、接口。引用传递的就是一个内存的使用权。一块存储空间,可能有多个人同时使用。
数组的声明格式里,“数据类型”是声明数组元素的数据类型,常见的类型有整型、浮点型与字符型等。
“数组名”是用来同意这组相同数据类型的元素的名称,其命名规则和变量的相同、变量的命名规则:第一个单词的首字母小写,之后的每个单词的首字母大写 如:studentName
数组声明后实际上是在栈内存中保存了此数组的名称,接下来便是要在堆内存中配置数组所需的内存,而“new”则是命令编译器根据括号里的长度。
基本数据类型都有其默认值: int 0;只要是引用数据类型默认值就是“null”
public class Arrydemo1 {
public static void main(String[] args)
{
int score[] = null;
score = new int [3];
System.out.println("score[0]="+score[0]);
System.out.println("score[1]="+score[1]);
System.out.println("score[2]="+score[2]);
}
}
数组元素通过“数组名称【下标】”的形式保存
数组的访问也可以通过循环的方式进行操作,循环操作的时候只需改变其索引下标即可。
取得数组的长度
数组名称.length
public class Arrydemo2 {
public static void main(String args[])
{
int score[] = new int[3];
for (int x =0;x<3;x++)
{
score[x]=x*2+1;
}
for(int x = 0;x<3;x++)
{
System.out.println("score["+x+"]="+score[x]);
}
System.out.println("数组的长度为:"+score.length);
}
}
数组的静态初始化问题
之前所看到的数组所采用的方式都是动态初始化,即,所有的内容在数组声明的时候并不具体的指定,而是以默认值的形式出现。
静态初始化就是指在数组定义之后,直接指明其内容。
public class Arraydemo4 {
public static void main(String[] args)
{
int score[] = {91,92,93,94,95,96};
for (int x = 0;x<score.length;x++)
{
System.out.println("score["+x+"]="+score[x]);
}
}
}
冒泡排序
public class Arraydemo3 {
public static void main(String[] args)
{
int score[]= {12,45,874,69,374,1580};
for(int i=0;i<score.length;i++)
{
for(int j = 0;j<score.length;j++)
{
if(score[i]<score[j])
{
int temp = score[i];
score[i] = score[j];
score[j] = temp;
}
}
System.out.println("第"+i+"次的输出结果为:\t");
for(int j = 0;j<score.length;j++)
{
System.out.print(score[j]+"\t");
}
System.out.println();
}
for(int i = 0;i<score.length;i++)
{
System.out.print(score[i]+"\t");
}
}
}
二维数组
二维数组声明的方式和一维数组类似,内存的分配也一样是用new这个关键字,其声明与分配内存的格式如下所示:
- 数组类型 数组名【】;
数组名 = new 数据类型 【行的个数】【列的个数】
数据类型 数组名【】【】 = new 数据类型【行的个数】【列的个数】
二维数组也是支持静态初始化操作的。静态操作的时候需要使用数组的数组。
总结
数组的使用分为两个步骤
- 声明数组,是在栈内存中声明的
- 为数组开辟空间,是使用关键字new在堆内存中完成
当然也可以一起完成:数据类型 数组名称【】=new数据类型【长度】
过数组名称 .length的形式求出数组的长度
- 有很多的常见算法及题目,只要控制好其下标就可以完成
- 标不能越界,越界之后就会出现错误。如果开辟了3个空间,则下标:0——2
- 组的开发中基本上就是用到二维,就相当于是一个表格的
- 因为其比较复杂,所以不建议使用过多。