JAVA学习第三节---数组的学习 2011-7-28
2011-07-28 11:11
483 查看
一、数组的创建及使用,先声明,再用new运算符进行内存分配
声明一维数组有下列两种类型,语法如下: 数组元素类型 数组名字 [ ]; 数组元素类型[ ] 数组名字;也可以声明的同时为数组分配内存,语法如下:数组元素类型 数组名字 =new 数组元素类型[数组元素的个数];
声明一维数组有下列两种类型,语法如下: 数组元素类型 数组名字 [ ][ ]; 数组元素类型[ ][ ] 数组名字;二维数组常用于表示表,表中的信息以行和列的形式组织 ,第一个下标代表元素所在行,第二个元素代表元素所在列。
初始化数组
例如 : int array[ ] = new int[1,2,3,4,5]; int array[ ][ ]={ {12,0},{45,10} };
我总是看不懂这个数组---- int a[][]={{1},{2,3},{4,5,6}}; 究竟是几行几列,于是写了一个程序验证了一下
public class Example{ public static void main(String args[]){ int a[][]={{1},{2,3},{4,5,6}}; for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ System.out.println("a["+i+"]"+"["+j+"]"+"="+a[i][j]); } } } }运行的结果是
这个二维组织比较特别,一共有三行,第一行的元素只有一个,第二行的元素有两个,第三行呢,有三个元素。
实例一:利用二维数组,将二维数组中的元素呈梯形输出;
public class Example{ public static void main(String args[]){ int i,j; int a[][]=new int[][]{{1},{2,3},{4,5,6}}; for(i=0;i<a.length;i++){ for(j=0;j<a[i].length;j++){ System.out.print(a[i][j]); } System.out.println(); } } }实例二:在遍历数组时,使用forreach语句可能会更简单。
public class Example{ public static void main(String args[]){ int a[][]={{4,3},{1,2}}; System.out.println("數組中的元素是: "); //提示信息 for(int x[]:a){ //外层循环变量是一维数组 for(int e:x){ //循环遍历数组中的每一个元素 if(e==x.length){ //判断变量是二维数组中的最后一个元素 System.out.print(e); } else{ System.out.print(e+"、"); } } } } }
二、Array类的一些方法
1、使用Array类的方法时,就必须引入包,import java.util.Arrays;
fill(int[ ] a,int value)-------可将指定int值分配给int类型数组的每个元素。 a是要进行元素替换的数组,value是要存储数组中所有元素的值。
import java.util.Arrays; public class Example{ public static void main(String args[]){ int arr[]=new int[5]; //這個數組一共有5個元素 Arrays.fill(arr,0,3,8); //用8去替換數組arr的第1個到第,3元素, Arrays.fill(arr, 8); //用8去替換數組的全部元素 for(int i=0;i<arr.length;i++){ System.out.println("數組的第"+i+"個元素是: "+arr[i]); } } }
至于输出结果,自己运行一下。2、sort(object [ ])-----對數組進行排序。
import java.util.Arrays; public class Example{ public static void main(String args[]){ int arr[]=new int[]{1,2,5,8,10}; Arrays.sort(arr); for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } } }
挺好的一個方法。
3、copyOf(Object [ ],int newlength)方法与copyOfRange(Object [ ],int formIndex,int tolnIndex )方法可实现对数组的复制。前者是复制数组至指定长度,后者则将指定数组的指定长度复制到一个新数组中。formIndex指定开始复制数组的索引位置,tolnIndex要复制范围的最后索引位置。
import java.util.Arrays; class Example{ public static void main(String args[]){ int arr[]=new int[]{1,11,5,8,10}; //Arrays.sort(arr); int newarr[]=Arrays.copyOf(arr,7); //主要的用法在这里 for(int i=0;i<newarr.length;i++){ System.out.print(newarr[i]+" "); } System.out.println(); //Another sad=new Another(); } }
复制数组最大的好处是可以扩大数组的长度,又不会失去一些数据。
4、binarySearch(Object [ ],key)与binarySearch(Object [ ] ,int formIndex,int tolnIndex,key)-----對數組進行查詢,而返回的结果是所要查询元素的索引值即下标,后者是指定了范围查询,formIndex是包括这个下标,tolnIndex不包括。
import java.util.Arrays; class Example{ public static void main(String args[]){ int arr[]=new int[]{1,11,5,8,10}; Arrays.sort(arr); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); Another sad=new Another();//哈哈,顺便学了一下类的调用,在类里面一定要有方法 } } class Another{ int arr1[]=new int[]{1,2,5,8,10}; int theIndex1=Arrays.binarySearch(arr1,2);//使用该方法时一定要先对数组进行排序 int theIndex2=Arrays.binarySearch(arr1,0,2,1);//在下标0~2之间搜索1,不包括下标2. Another(){ System.out.println(theIndex1); System.out.println(theIndex2); } }
对很多人来说,这真的是非常小的非常小的case,但是对我来说是大大的进步。因为我以前总是喜欢边看书边敲代码。现在都是我自己编的。
那数组这一节就基本学完了,期待下一节
相关文章推荐
- 【Java学习笔记】流程控制与数组
- Java学习笔记(二)运算符及数组
- Java学习(一)数组的学习
- [学习笔记]Java数组和方法
- Java8学习-方法引用、构造器引用、数组引用
- java基础学习记录之数组折半查找的学习与练习四
- Java学习笔记-数组与容器间的转制-asList
- java学习(2)数组详解(包括数据的初始化、比较、排序、重要方法)
- java学习之数组排序一:选择排序
- 黑马程序员——java学习笔记--数组
- Java数组学习
- 从零开始学习Java——基础知识之数组(第五天)
- java语言学习---数组(进制转换)
- java学习1:数组管理小程序,附源码
- ACCP学习旅程之-----Java 数组(第八章节)
- 黑马程序员--学习笔记-- Java中常见的数组排序方式(一)
- Java学习笔记【数组知识要点】
- Java学习之二维数组定义与内存分配详解
- java学习 十、数组
- java学习之数组(二)