Java学习笔记之数组、枚举

以下是博主学java的时候记的一些笔记,分享给大家,如果有错误或者以为的话,可以在下方留言


声明数组:

数组名的元素类型   数组名字[];  例:int a[];

数组名的元素类型   []数组名字;  例:int []a;

个人理解:

如果要定义多个数组时可以这样: int a[],b[],c[];

也可以这样: int []a,b,c;两者作用相同;

多维数组也是可以这样;

注意:Java中,不允许声明数组中的方括号内指定数组元素的个数。

例:int a[12]或int [12]a都是不对的;

 

创建数组:

格式如下: 数组名字=new 数组元素的类型[数组元素的个数];

例:boy=new int[4];

声明也可以和创建函数一起完成;

例:int boy[]=new int[4];

多维数组也一样;

Java中,构成二维数组的一维数组的长度可以不相等,在创建二维数组时可以分别指定长度;

例:int s=4;

int a[][]=new int[s][];

 a[0]=new int[4];

 a[1]=new int[6];

 .......

数组长度的测量:int a[]={1,2,3,4};

               数组的长度就是:a.length=4;

二维数组测量的是一维数组的个数;

例:int a[][]=new int[3][6];

    a.length=3;

两个具有相同类型的数组如果具有相同的引用,就有相同的元素;

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

    Int b[]={6,7,8};

a=b;

那么数组a中元素的值为a[0]=6;a[1]=7;a[2]=8;

对于一般类型的数组:System.out.println(a)输出的是a的引用,我把它理解为输出了a的地址;

注意:对于char型数组,System.out.println(a)不会输出数组a的引用,而是输出a的值;

例:char a[]={,‘好’,‘呀’};

   System.out.println(a)=你好呀;

如果想输出a的引用,应该让数组a和字符串做并置运算;

例: System.out.println(“”+a);

 

数组的输出:

import.java.util.Arrays;

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

System.out.println(Arrays.toString(a));

 

数组的复制:

System.arraycopy(a,0,b,2,4);

大体来说就是将数组a中从a[0]这个元素开始复制往后的4个(包含a[0]),也就是说复制到a[0+4-1]到数组b中,从数组b中的b[2]开始复制(包含b[2]);

Arrays.copyOf(数组名,复制的个数);

int []b=Arrays.copyOf(a,5);

大体来说就是将数组a的5个值复制到数组b中,如果数组a中没有5个元素的话,那就把其他元素用0补齐;

Arrays.copyRange(数组名,起始项,截止项);

int a[]={100,200,300,400,500,600};

int b[]=Arrays.copyRange(a,2,5);

大体来说就是复制数组a中的从a[2]——a[5-2]的元素到数组b中,不足的用0补齐;

 

数组的排序:

Arrays.sort(数组名);

Arrays.sort(数组名,起始项,截止项);升序排列;

Import java.util.*;

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

Arrays.sort(a);

 

数组元素的查找:

Arrays.binarySearch(数组名,要查找的项);

最后返回的值是“要查找的项”在元素中的位置,找不到的话那么就会返回一个负数;

注意:数组最好是应经排完序的数组,这样结果才更正确;

<span style="font-size:18px;"><span style="font-size:18px;">Example_2.java

import java.util.*;

Public class Example_2{

    Public static void main(String []args){

        int []a={12,34,9,23,45,5,45,90,123,19,34};

        Arrays.sort(a);

        System.out.println(Arrays.toString(a));

        int numble=45;

        int index=Arrays.binarySearch(a,number);

        if(index>=0){

             System.out.println(number+”和数组中索引为”+index+“的元素值相同”);

}

else{

    System.out.println(number+”不和数组中的任何元素相同”);

}

}

}</span></span>

答案:

 

<span style="font-size:18px;"><span style="font-size:18px;"><span style="color:#000000;">{6,9,12,19,23,34,34,45,45,90,123}

45和数组中索引为8的元素值相同</span></span></span>

枚举类型:

格式:enum 枚举名

{ 常量列表

}

常量列表之间是用逗号分隔开的,末尾不会有分号!!!

例:

<span style="font-size:18px;"><span style="font-size:18px;">Weekday.java

public enum Weekday{

   星期一,星期二,星期三,星期四,星期五,星期六,星期天

}

Example_3.java

public.class.Example_3{

    Public static void main(String []args){

           Weekday x=Weekday.星期天;

           if(x==Weekday.星期天){

               System.out.println(x);

               System.out.println(“今天我休息”);

            }

    }

}</span></span>


精度从“低”到“高”的排列顺序是byte short char int iong float double

个人理解:

break和continue之间的不同是:break会跳过所有的循环,而continue只会跳出当前的一个循环,不影响下一次的循环。

 

for语句和数组:

for(声明循环变量:数组的名字)

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

例:for(int i:a)

个人理解:i要经过4次循环,每次取数组a 中的一个值,然后赋给i,就等于for(int s=0;s<a.length;s++){ i=a[s]; }

注意: 声明循环变量必须是变量声明,不能使用已经声明过的变量。

例:

<span style="font-size:18px;"><span style="font-size:18px;">Example_4.java

public class Example_4{

     public static void main(String []args){

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

         char []b={‘a’,’b’,’c’,’d’};

         for(int n=0;n<a.length;n++){

           System.out.println(a[n]);     //传统方式

         }

         for(int i:a){              i依次取数组a的值

              System.out.println(i);     //改进方式

         }

}

}

 </span></span>

如果一个要把一个枚举类型的常量赋值给一个数组,该用以下形式:

枚举类型的名字 .values();

例: Weekday a[]=Weekday.values();

     那么,a[0]~a[6]的值依次是sun mon tue wed thu fri sat

<span style="font-size:18px;"><span style="font-size:18px;">Example_5.java

 Enum Fruit{

     苹果,梨,香蕉,西瓜,芒果

}

public class Example_5{

public static void main(String []args){

      double  price=0;

      boolean show=false;

      for(Fruit fruit:Fruit.values()){

           switch(fruit){

               case 苹果:price=1.5;

                         show=ture;

                         break;

               case 芒果:price=6.8;

                         show=ture;   

                             break;

                   case 香蕉:price=2.8;

                             show=ture;  

                             break;

                   default:show=flase;

               }

              if(show){

                   System.out.println(fruit+”500克的价格:”+price+”元”);

           }

        }

     }

}

 </span></span>

答案:

<span style="font-size:18px;"><span style="font-size:18px;">苹果500克的价格:1.5元

香蕉500克的价格:2.8元

芒果500克的价格:6.8元</span></span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值