您的位置:首页 > 编程语言 > Java开发

Java学习笔记之数组、枚举

2016-05-04 19:39 621 查看
以下是博主学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
);     //传统方式

}

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: