以下是博主学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>