java se基础 -- 数组
一.数组
1.数组概述:相同数据类型的数据组合
2.使用数组
2.1数组的初始化
int[] scores1 = new int[]{72,90,59};//静态初始化数组
intscores2[] = new int[3];//动态初始化:在声明并初始化数组与给数组响应的元素赋值操作分开进行.
scores2[0] = 72; scores2[1] = 90; scores2[2] = 59;
//声明数组的错误方法
1)String[] names = newString[5]{"AA","BB","CC"};
2)inti[10];
3)inti = new int[];
注:1.不管是动态还是静态初始化数组,一定在创建的时候,就指明了数组的长度.
2.如何引用数组元素:通过数组的下角标的方式.小角标从0开始,到n-1结束,其中n为数组的长度
3.数组的长度:通过数组的属性length来调用
System.out.println(scores2.length);//3
4.如何遍历数组
for(inti = 0;i<scores1.length;i++){
System.out.println(scores1[i]);
}
5.关于数组元素的默认初始化值
1)byteshort int long而言:0
2)float double 而言:0.0
3)char而言:空格
4)boolean而言:flase
5).引用类型变量而言:null
2.2数组的内存结构
2.2.1对于数组来讲
2.3二维数组
2.3.1二维数组的声明并初始化
动态初始化:
String[][] str = new String[4][3];//4行3列
String[] str1 = new String[4][];
str1[0] = new String[3];
...
str1[3] = new String[5];
3)静态初始化
int[][] arr = newint[][]{{1,2,3},{4,5},{6}};
2.3.2如何引用二维数组的元素:arr[1][0]= 12;
2.3.3.二维数组的长度:arr.length;//3
arr[1].length;//2
2.3.4.遍历二维数组
for(int i = 0;i<arr.length;i++){
for(intj = 0;j<arr[i].length;i++){
System.out.print(arr[i][j]);
}
}
2.3.5二维数组的结构
数组的复制与反转:
import java.util.Arrays;
public class TurnArray {
public static voidmain(String[] args) {
int[] a ={1,2,3,4,5};
int[] b =new int[a.length];
for(int i =0;i<a.length;i++){
b[b.length-1-i]= Arrays.copyOfRange(a, i, i+1)[0];
}
for(inti:b){
System.out.println(i);
}
}
}
数组的排序:
<1>利用Arrays带有的排序方法快速排序
import java.util.Arrays; 2 public class Test2{
public static void main(String[] args){
int[] a={5,4,2,4,9,1};
Arrays.sort(a); //进行排序
for(int i: a){
System.out.print(i);
}
}
}
<2>冒泡排序算法
public static int[] bubbleSort(int[] args){//冒泡排序算法
for(int i=0;i<args.length-1;i++){
for(int j=i+1;j<args.length;j++){
if (args[i]>args[j]){
int temp=args[i];
args[i]=args[j];
args[j]=temp;
}
}
}
return args;
}
<3>选择排序算法
public static int[] selectSort(int[] args){//选择排序算法
for (int i=0;i<args.length-1 ;i++ ){
int min=i;
for (int j=i+1;j<args.length ;j++ ){
if (args[min]>args[j]){
min=j;
}
}
if (min!=i){
int temp=args[i];
args[i]=args[min];
args[min]=temp;
}
}
return args;
}
<4>插入排序算法
public static int[] insertSort(int[] args){//插入排序算法
for(int i=1;i<args.length;i++){
for(int j=i;j>0;j--){
if (args[j]<args[j-1]){
int temp=args[j-1];
args[j-1]=args[j];
args[j]=temp;
}else break;
}
}
return args;
}