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(数组名,要查找的项);
最后返回的值是“要查找的项”在元素中的位置,找不到的话那么就会返回一个负数;
注意:数组最好是应经排完序的数组,这样结果才更正确;
答案:
枚举类型:
格式:enum 枚举名
{ 常量列表
}
常量列表之间是用逗号分隔开的,末尾不会有分号!!!
例:
精度从“低”到“高”的排列顺序是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]; }
注意: 声明循环变量必须是变量声明,不能使用已经声明过的变量。
例:
如果一个要把一个枚举类型的常量赋值给一个数组,该用以下形式:
枚举类型的名字 .values();
例: Weekday a[]=Weekday.values();
那么,a[0]~a[6]的值依次是sun mon tue wed thu fri sat
答案:
声明数组:
数组名的元素类型 数组名字[]; 例: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>
相关文章推荐
- JAVA线程池ThreadPoolExecutor-转
- Java 初学者学习路线(浓缩版)
- java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log 造成的原因和解决方法
- springmvc在业务控制方法中收集List<JavaBean>参数,实现批量处理
- java之代理设计模式
- Java ConcurrentModificationException异常原因和解决方法
- [ERROR] Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassChang
- Java 调用cmd命令
- java中日期yyyy-MM-dd格式转为星期几
- Spring4 MVC入门教程
- Spring事务的传播特性
- java设计模式之代理模式
- Java核心技术(四) —— 继承(2)
- Spring4实战学习笔记
- 跟王老师学集合(一)为什么要使用集合和Java集合概述
- JavaMail的java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误
- java并发编程(11)--并发容器ConcurrentHashMap和CopyOnWriteArrayList
- java学习笔记-io流浅析与实例
- JDBC连接MySQL产生java.lang.ClassNotFoundException异常
- java字符串subString的实现