java学习笔记2

来源:互联网 发布:怎么追加淘宝评论 编辑:程序博客网 时间:2024/06/10 17:07

1.声明数组后,还不能访问它的任何元素,因为声明数组仅仅是给出数组名字和元素的数据类型,要想真正使用数组还要为其分配内存空间,且分配内存空间时必须指明数组的长度。例:int a[]=new int[5];使用new为数组分配内存空间时,数组中的各元素的初始化值都为0。给二维数组分配内存时,还可以对其中每一个一维数组单独分配内存,而且分配的内存可以并不相同:

int a[][]=new int[2][]; a[0]=new int[2]; a[1]=new int[3];
例:使用foreach语句实现二维数组的遍历
public class Example1{
public static void main(String  []args) //主方法
{
int arr1[][]={{3,4,3},{1,2}}; //定义二维数组
System.out.println("二维数组中元素是:"); //提示信息
for(int x[]:arr1){ //外围循环变量为一维数组
for(int e:x){ //循环遍历每一个数组元素
System.out.print(e+" "); //输出二维数组的元素
}
System.out.println();
}
}
}

2.填充替换数组元素
数组定义成功后,可以使用Arrays类的静态方法fill()对数组中的元素进行替换。该方法通过重载实现对各种类型数组元素的替换。fill()方法的参数类型:

fill(int[]a,int value):该方法将指定的int值分配给int型数组的每个元素。
a:要进行替换的数组;value:要存储数组中所有元素的值;返回值:填充后的数组。

fill(int []a,int fromIndex,int toIndex,int value):该方法将指定的int值分配给int型数组指定范围中的每个元素。填充的范围从索引fromIndex(包括)到toIndex(不包括);若fromIndex==toIndex;则填充范围为空。
a:要填充的数组;fromIndex:要使用指定值填充的第一个元素的索引(包括);toIndex:要使用指定值填充的最后一个元素的索引(不包括)value:要存储在数组所有元素中的值;返回值:替换元素后的数组。

3.对数组进行排序
Arrays.sort(object):可以实现对任意类型数组进行升序排序。
object:能进行排序的数组名称;返回值:排序后的数组。

4.复制数组、
Arrays.copyOf(arr,int newlength)
arr:要复制的数组;newlength:指复制后数组的新数组的长度。如果新数组长度大于arr数组的长度,则用0填充,(char型用null填充)。若小于arr数组的长度,则会从arr数组的第一个元素开始截取满足新数组长度的元素个数;返回:复制后的数组
Arrays.copeOfRange(arr,int fromIndex,int toIndex)
在复制数组时,新数组包括索引是fromIndex的元素,不包括索引是toIndex的元素。

5.查询数组
Arrays.binarySearch(Object []a,Object key):
a:要搜素的数组;key:要搜索的值;返回值:如果key包含在数组中,则返回搜索值的索引;否则返回-1或-(插入点)。插入点是搜索键将要插入数组的那一点,即:第一个大于此键的元素索引。
Arrays.binarySearch(Object[]a,int  fromIndex,int toIndex,Object key):在指定范围内检索某个元素。
import java.util.Arrays;//导入java.util.Arrays类
public class Example2{
public static void main(String  []args)//主方法
{
int arr2[]=new int[5];//定义一维数组
int newarr2[];//声明一个一维数组,用于验证复制数组操作
int index;//声明一个变量用于验证搜索操作
Arrays.fill(arr2,8);//使用同一个值对数组进行填充
System.out.println("Arrays.fill(arr2,8):");
for(int i=0;i<arr2.length;i++){
System.out.println("第"+(i+1)+"个元素是:"+arr2[i]);
}
System.out.println("Arrays.fill(arr2,1,3,6);");
Arrays.fill(arr2,1,3,6);
for(int i=0;i<arr2.length;i++){
System.out.println("第"+(i+1)+"个元素是:"+arr2[i]);
}
Arrays.sort(arr2);
System.out.println("排序后的数组:");
for(int i=0;i<arr2.length;i++){
System.out.println("第"+(i+1)+"个元素是:"+arr2[i]);
}
index=Arrays.binarySearch(arr2,7);
System.out.println("7索引的位置是:"+index);
index=Arrays.binarySearch(arr2,0,4,8);
System.out.println("8索引的位置是:"+index);
System.out.println("复制后的新数组为Arrays.copeOf():");
newarr2=Arrays.copyOf(arr2,5);
for(int i=0;i<newarr2.length;i++){
System.out.println("第"+(i+1)+"个元素是:"+newarr2[i]);
}
newarr2=Arrays.copyOfRange(arr2,0,3);
System.out.println("复制后的新数组为Arrays.copeOfRange():");
for(int i=0;i<newarr2.length;i++){
System.out.println("第"+(i+1)+"个元素是:"+newarr2[i]);
}
}
}
原创粉丝点击