java数组基础
基本定义学习想法
数组的定义:一组数据类型相同的数据集合。引用、对象
内存中的空间连续、长度给定。
Arrays是一个专门用于数组的类
基础使用
数据类型可以有多种,但是同一数组只有一种数据类型
声明:数据类型 数组名字[];
数据类型[] 数组名字;
import java.util.Arrays;
public class Shuzu {
public static void main(String[] args) {
//int[] a=new int[3];空间为三的数组{0,0,0}
int[] a=new int[]{1,2,3};
//int[] a={1,2,3};
System.out.println(Arrays.toString(a));//输出数组
a[0]=9;
a[1]=5;
a[2]=6;
System.out.println(Arrays.toString(a));
System.out.println(a[1]);//输出数组第1个位置的数据
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}
运行结果:
[1, 2, 3]
[9, 5, 6]
5
9
5
6
迭代
1.for循环
int[] a=new int[]{1,2,3};
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
2.增强for循环
int[] a=new int[]{1,2,3};
for(int i:a){
System.out.println(a);
}
排序
冒泡排序、选择排序作为基础的排序方法。
冒泡排序
在一个数组中,进入循环,前两个数据进行比较,如果前者比后者大,那么就交换两个数据,依次比较,判断是否交换。
import java.util.Arrays;
public class Maopao {
public static void main(String[] args) {
int[] a={2,4,1,6,1,5,2,9,10,5,1,6,9};
for(int i=1;i<a.length;i++){
for(int j=0;j<a.length-i;j++)
{
if(a[j]>a[j+1])
{//接下来三个语句是交换两个数据
int num = a[j];//选取一个数字作为存储空间,放置数据
a[j]=a[j+1];
a[j+1]=num;
}
}
}
System.out.println(Arrays.toString(a));
}
}
选择排序
在一个数组中,选取第一个数据,与其他所有数字依次比较数据大小,如果比它小,他们两就会交换数据,依次进行。由此可知我们需要建立两次循环,即两次遍历中比较数据大小并排序。
import java.util.Arrays;
public class Xuanze {
public static void main(String[] args) {
int[] a={2,4,1,6,1,5,2,9,10,5,1,6,9};
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++)
{
if(a[i]>a[j]) {
int num = a[i];//选取一个数字作为存储空间,放置数据
a[i]=a[j];
a[j]=num;
}
}
}
/*第二种思路int num;
for(int i=0;i<a.length-1;i++){
num=a[i];
for(int j=i+1;j<a.length;j++)
{
if(num<a[j]){
num = a[j];
}
}
for(int k=i;k<a.length;k++){
if(num==a[k])
{a[k]=a[i];break;}
}
a[i]=num;
}*/
System.out.println(Arrays.toString(a));
}
}
二维数组
二维数组中每个元素是一个一维数组。
一维数组相当于数学中的线,二维是平面,三维可以是空间。
一二三维,分别是一个两个三个数字,记录其空间位置。
还有多维维度数组不过一般情况也用不上。
例:int [] []a={{1,3,5},{5,8,9},{7,6,4}};