JAVA入门小小白学习中ing(数组的遍历、数组中的默认值、创建数组的其他语法、数组的地址转移、数组作为参数、数组作为返回值、可变参数、数组的排序(冒泡排序))


小猪学习


小小白慢慢学习中ing 第八天

努力努力


本日内容(数组的遍历、数组中的默认值、创建数组的其他语法、数组的地址转移、数组作为参数、数组作为返回值、可变参数、数组的排序(冒泡排序))

1、数组的遍历

遍历:依次访问,从第一个元素,访问到最后一个元素。

使用循环来遍历数组:

for(int i = 0;i < arr.length; i++){

    arr[i] = i;//赋值

    System.out.println(arr[i]);//获取数值

}

1.1 for-each循环

for-each循环:【扩展】

增强for循环:JDK1.5的版本出现的。

特定的用法:专门用于获取数组中的每一个元素的值。

语法结构:

for(数据类型 变量名 : 数组名){

   System.out.println(变量名);

}

工作原理:

for(int e :arr){

   System.out.println(e);

}

int e,定义变量e,

依次获取数组的元素,赋值给e

注意点:

   A:for-each只能获取数组的数据,但是不能给数组进行赋值

   B:for-each,在代码这个层面,不能操作下标。

2、数组中的默认值

数组的默认值,就是数组创建后,里面存储的默认的数据。

数组的引用存在栈内存中,数组本身存在堆内存中。

数组创建完,就有默认的数据了。

数组中存储的默认值:

        数组中是有默认值的

                    整数:0

                    小数:0.0

                    字符:\u0000

                    布尔:false

                    其他:null

3、创建数组的其他语法

动态创建数组:先创建数组,然后再根据下标一个一个存储数据。

A:先声明,再创建(分配内存空间)

    数据类型 [] 数组名;

    数组名 = new 数据类型[长度];

B:声明并创建

     数据类型 [] 数组名 = new 数据类型[长度];

    数据类型 数组名[] = new 数据类型[长度];

    //静态创建数组:声明,创建,赋值一起写完。

C:声明,创建,并赋值

        数据类型[] 数组名 = {数值1,数值2,数值3,数值4.。。。};

        //=左边声明数组,=右边,会先根据{}中数据的个数,然后再将{}中数据,按照顺序存储进去。

    完成了几件事:

        1.先声明:int[] c

        2.根据{}中数组值的个数,开辟堆内存

        3.将{}中的数组值,依次按照顺序存入数组中

D:声明,创建,并赋值

        数据类型[] 数组名 = new 数据类型[]{数值1,数值2,数值3,数值4.。。。}

4、数组的地址转移:(知道)

Java中的数据分为两大类:

基本类型:4类8种

        操作的都是数值本身

引用类型:数组

        操作的是地址


基本类型进行赋值:数值

引用类型进行赋值:地址

示例代码:

class Test4ArrayAddress{

        public static void main(String[] args){

                /*

                数组:引用类型的数据

                数组名,存储是引用地址。

                */

                int[] a = new int[3];

                System.out.println(a.length);//3

                System.out.println(a);//a数组的地址

                System.out.println(a[0]);//0

                a[0] = 1;

                a[1] = 2;

                a[2] = 3;

                int[] b = {4,5,6,7};

                System.out.println(b.length);//4

                System.out.println(b);//b的地址

                System.out.println(b[0]);//4

                int[] c = a;//将a的值赋值给c,就是将a存储的数组的地址赋值给c

                //a和c存储的地址相同,那么就指向了同一个数组

                System.out.println(c.length);//3

                System.out.println(c);//a的地址

                System.out.println(c[0]);//1

                c[0] = 100;

                System.out.println(a[0]);

                System.out.println(b[0]);

                System.out.println(c[0]);

                b = c;

                b[1] = 200;

                System.out.println(a[1]);//200

                System.out.println(b[1]);//200

                System.out.println(c[1]);//200

        }

}

内存分析:

5、数组作为参数

数组是引用类型:传递的是地址。就是参数也会指向这块内存。当方法结束的时候,参数就销毁了。

class Test5ArrayMethod{

        //设计一个方法,用于打印数组

        public static void printArray(int[] arr){//int[] arr = a;a的地址给了arr,那么arr和

                                                                 // a指向同一块内存的数组

                for(int e : arr){

                        System.out.print(e +"\t");

                }

                System.out.println();

        }

        public static void main(String[] args){

                int[] a = {1,2,3,4,5};

                //设计一个方法,用于打印数组

                printArray(a);//将a的地址,传递给arr

                System.out.println("Hello World!");

        }

}

6、 数组作为返回值

示例代码:

//设计一个方法,用于创建一个数组, 并赋值。数组要返回给调用处

public static int[] createArray(int len){

        int[] arr = new int[len];

        for(int i = 0;i <arr.length;i++){

                arr[i] = i * 2;

        }

        return arr;

}

7、可变参数【扩展】

概念:一个方法可以接收的参数的数量不定(0-多个),但是类型固定。

语法:数据类型 ... 参数名,可变参数在方法中当数组使用。

注意事项:

        1、如果参数列表中,除了可变参数还有其他的参数,可变参数要写在整个参数列表的最后。

        2、一个方法最多只能有一个可变参数。

class Test6Array{

        //求一组int类型的数据的和

        public static void getSum(int ... nums ){

                int sum = 0;

                for(int i = 0;i <nums.length;i++){

                        sum += nums[i];

                }

                System.out.println("结果:" + sum);

        }

        public static void main(String[] args){

        /*

        可变参数:同一种类型的参数,类型固定的,但是个数不固定。

        语法的支持:

        数据类型 ... 参数名

        可变参数,类型固定,个数可变。0-多个

        在方法中可变参数当数组使用

        */

        getSum(1,2,3);

        getSum(1,2,3,4,5,6,7,8,9,10);

        System.out.println("Hello World!");

        }

}

8、 数组的排序

排序:数组是存储一组数据,而且这些数据是有顺序的。但是数值本身可能是无序的。通过算法来实现给数组进行排序,升序(数值从小到大),降序(数值从大到小)。

1、冒泡排序:Bubble Sort

原理:比较相邻的两个数,将较大的数,向后移动。

class Test7BubbleSort{

        public static void main(String[] args){

                int[] arr = {15,23,8,10,7};

                for(int i= 1; i<arr.length;i++){//控制轮数:

                //i=1,2,3,4

                /*

                i=1, j<4

                i=2, j<3

                i=3, j<2

                */

                        for(int j = 0;j < arr.length - i;j++){

                                if(arr[j] > arr[j+1]){

                                        //交换

                                        int temp = arr[j];

                                        arr[j] = arr[j+1];

                                        arr[j+1] = temp;

                                }

                        }

                }

                for(int i = 0;i<arr.length;i++){

                        System.out.println(arr[i]);

                }

        }

}




希望我能坚持住每天坚持记录着 ...

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容