package text;
//数组--将一些数据按照线性顺序连续存储的序列,
//数组是效率最高的 存储和访问元素的一种方式
public class Demo1214 {
public static void main(String[] args) {
Demo1214 d = new Demo1214();
d.f1();
d.function3();
d.function();
d.function2();
//[]里面是数组长度,{}里面是元素
int t1 = 0;
// 这种形式不提倡---[]在后面不提倡
int array11[] = new int[10]; // 默认值==0哦
for (int i = 0; i < array11.length; i++) { //array11.length=10
System.out.print(array11[i]);
System.out.print(' ');
}
int array21[] = new int[] {1,2,3,4,5,6};
for (int i = 0; i < array21.length; i++) { //array21.length=6
System.out.println(array21[i]+"can");
}
int array31[] = {4,5,6,7,8}; //这种用法只能在定义时使用
// 三种初始化赋值方式
int []array12 = null;
//这种是::是变量,有对象 只要 new 了,就有对象
//这种定义方式 属于 :是变量,没对象
double[] array13 ;
String[] array14 ;
Integer[] array16;
// 数组基本特点:
//1-元素类型遵循数组类型(基本数据类型,引用类型) int型数组内的元素也只能是int型···
//2-初始化赋值后数组长度固定不变
//数组变量--"array14、array13", 一定是 引用类型
//默认值为 null
System.out.println(array12);
int[] array15 = new int[] {}; // 有对象,长度为零。
// System.out.println(array15[0]); //报错 ,因为长度为零
}
void function() {
//数组是简单的线性序列,所以访问速度快、
//数组中每个元素拥有一个索引值,通过索引值访问该元素
//索引值取值范围[0,length)从0开始,到最大长度-1
int[] array = new int[3];
array[0] = 100;
int t1= array[0];
System.out.println(t1);
System.out.println(array.length);
int i=0;
while (i<array.length) {
System.out.println(i+" "+array[i]);
i++;
System.out.println("---------------------");
}
for (int k : array) {
System.out.println(k);
}
}
void function2(){
int[] a1 = new int[] {1,2,3,4,56}; //引用类型 a1 存储元素的地址
int[] a2 = a1; // a2 引用 a1
int[] a3 = new int[] {1,2,3,4,56};
//引用类型变量(例如这里的a1、a2、a3),实质上存储的是 指向内存中的一个地址,Java中称之为 引用
for (int i = 0; i < a1.length; i++) {
a2[i]++;
System.out.println(a1[i]+" "+a2[i]+" "+a3[i]);
}
}
// 例子:
void function3() {
int[] a4 = new int[] {1,2,3,4,5};
function5(a4); //a4数组没有变化
for (int i : a4) {
System.out.println(i);
}
System.out.println("-------下面是 新的 a4-----");
function4(a4); //a4发生变化
for (int i : a4) {
System.out.println(i);
}
}
void function4(int[] a5) {
for (int i = a5.length-1; i >=0; i--) {
a5[i] *=2;
}
}
void function5(int[] a5) {
a5 = new int[] {7,8,9,10}; //这个重新被定义数组a5改变
for (int i = a5.length-1; i >=0; i--) {
a5[i] *=2;
}
}
/**
*
*/
void f1() {
//数组划分:
//一维数组,二维数组,多维数组
//二维数组 :类似于execl, 表格中的信息以行、列的形式组织存储
int[][] array12;
int array[][];
int[]array13[];
//三种定义方式
int[][] array31 = new int[2][3];
int[][] array32 = new int[][] {{2,3,4,5},{1,2,34,4}};
int[][] array33 = {{1,2,3},{4,5,6}};
//三种赋值方式
test(array32);
System.out.println("=============");
}
void test(int [][]array) {
array[1][2] = 9;
System.out.println(array[1][2]);
System.out.println();
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]);
System.out.print(" ");
}
System.out.println();
}
System.out.println();
for (int[] p1 : array) {
for (int p2 : p1) {
System.out.print(p2);
System.out.print(" ");
}
System.out.println();
//在java中认为 二维数组是 数组的数组
//即,二维数组是一个特殊的一维数组,其中每个数组又是一个一维数组
}
}
}
100行代码处,二维数组的遍历!!
最新推荐文章于 2023-08-05 12:19:45 发布