目录
什么是数组
数组是相同数据类型元素的集合
数组本身是引用数据类型(对象),但是数组可以存储基本数据类型, 也可以存储引用数据类型(忘了数据类型是什么的话就进来瞅瞅吧:javase基础知识 基本数据类型 运算符 条件语句 循环 方法_8++;的博客-CSDN博客)
创建一个数组
首先说一下数组的声明(两种方式):
1. 数据类型 [] 数组名字; 例如:int [] a;
2. 数据类型 数组的名字 []; 例如: int a [];
!!!需要注意的是a只是一个名字!!!
数组创建的三种方式:
1. 声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值 int [] a = new int[10];
2. 声明数组并分配内存,同时将其初始化 int [] a = new int [] {1, 2, 3, 4, 5};
3. 与前一种方式相同,仅仅只是语法相对简略 int [] a = {1, 2, 3,4,5};
tip:1属于动态创建数组(没有为元素赋值,可以结合for循环进行赋值)
2和3属于静态创建数组,在创建的时候,即为每个元素赋初值
数组的访问与迭代
数组元素的访问:
数组名字[索引] 例如:a[0],a[1];
注意:
• 数组的索引从0开始。
• 索引的数据类型是整型
• 索引最大值和数组长度始终差1 //索引从零开始,数组长度计算从一开始
数组迭代:
迭代意思是逐一遍历元素。
第一种:for循环
int [] b1 = new int []{1,2,3,4,5,6,7};
数组的迭代
for(int i =0;i<b1.length;i++)
{
System.out.println(b1[i]);
}
第二种:增强for循环
int [] b1 = new int []{1,2,3,4,5,6,7};
for(数组元素的类型 临时变量名字 :数组的名字)
{
System.out.println(临时变量名字 );
}
for(int x:b1){
System.out.println(x);
}
数组的排序
Arrays.sort()
Arrays 是java的util包下的数组工具类,其中提供默认的sort排序,Arrays.sort()排序方法在java中是最简单且最常用的排序方法
package lianxi;
import java.util.Arrays;
public class lx {
public static void main(String[] args) {
int[] arr = {1, 4, 62, 33, -8, 2, -12, 34, 0};
Arrays.sort(arr); //默认从小到大进行sort()排序
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + "\t");
}
}
冒泡排序
冒泡排序就是重复地走访过要排序的数列,一次比较相邻的两个元素,如果他们的大小顺序错误就把他们交换过来,直到不再需要交换,则该数列已经排序完成。
package LxJava;
import java.util.Arrays;
public class Lx {
public static void main(String[] args) {
int [] a = new int[]{2,15,60,35,8};
int b,c,x;
for(b=0;b<a.length-1;b++){
for(c=0;c<a.length-1-b;c++){
if(a[c]>a[c+1])//相邻的两个元素比较,数值大的放在后面
{
x=a[c];
a[c]=a[c+1];
a[c+1]=x;
}
}
}
System.out.println(Arrays.toString(a));
}
}
选择排序
先假设一个最大值,然后依次和其他数比较,数值大的放在在前面。
package LxJava;
import java.util.Arrays;
public class Lx {
public static void main(String[] args) {
int [] a = new int[]{2,15,60,35,8};
int b,c,x;
for(b=0;b<a.length-1;b++){
for(c=b+1;c<a.length;c++){
if(a[c]>a[b])//假定一个最大值,然后依次比较,数值大的在前面
{
x=a[c];
a[c]=a[b];
a[b]=x;
}
}
}
System.out.println(Arrays.toString(a));
}
}
二维数组
二维数组的定义
二维数组的每一个元素是一个一维数组
例如: int [][]a = {{1,2,3},{1,2,3},{1,2,3}}
二维数组的声明
数据类型 [][] 数组名字;
数据类型 数组名字 [][];
int [][] a; int a2[][];
二维数组创建
int [][] a = new int[][]{{1,2,3},{1,2,3},{1,2,3}};
int [] [] b = {{1,2,3},{1,2,3},{1,2,3}};
int [][] c = new int[3][5]; //定义了一个整型的二维数组 ,这个二维数组有3 个一维数组,每一个一维数组包含5个元素
二维数组的迭代
package lianxi;
public class lx {
public static void main(String[] args) {
int[][] b1 = new int[][]{{1, 2}, {3, 4}};
for (int i = 0; i < b1.length; i++) {
for (int j = 0; j < b1[i].length; j++) {
System.out.print(b1[i][j]+"\t");//i索引行 j索引列
}
}
}
}