Java语法基本篇:java处理数组
2016-06-13 23:15
489 查看
关于Java的一些简单的语法主要包括数据类型、算术运算符以及算术表达式、关系运算符和关系表示式以及逻辑运算符和逻辑表达式的使用,这些都很常见,有C/C++学习经验来说大部分都是相通的,下面就介绍java如何处理数组。
1. 对数组进行赋值,将数组元素输出
public class arraryTest { public static void main(String[] args) { int[] a; //声明了一个整型数组 a=new int[10]; //告诉该数组拥有10个元素 int i; for(i=0;i<10;i++) //通过 for循环赋值 { System.out.println("a["+i+"]="+(i*i)); } }
下面是程序结果:
a[0]=0 a[1]=1 a[2]=4 a[3]=9 a[4]=16 a[5]=25 a[6]=36 a[7]=49 a[8]=64 a[9]=81
2. 数组排序和索引
public class SearchArray { public static void main(String[] args) { int[] array = {2, 4, 6, 1, 3, 5, 9, 11, -5, 30, 100}; Arrays.sort(array); int index = Arrays.binarySearch(array, 11); System.out.println(Arrays.toString(array)); System.out.println("The index of 11 is "+index); index = Arrays.binarySearch(array, 10); System.out.println("The index of 10 is "+index); } }
以下是此段程序输出如下:
[-5, 1, 2, 3, 4, 5, 6, 9, 11, 30, 100] The index of 11 is 8 The index of 10 is -9
需要注意的是在使用java的sort()方法以及binarySearch()方法需要前提在文件开始处导入import java.util.Arrays;
toString()方法就是将对象转化为字符串,以字符串形式输出。
3. 数组长度length
public class arrary2 { public static void main(String[] args) { int[] a=new int[]{1,2,3,4,5}; int[] b=new int[]{2,3,4,5,6,7,8}; for(int i=0;i<a.length;i++) { System.out.println("a["+i+"]="+a[i]); } for(int j=0;j<b.length;j++) { System.out.println("b["+j+"]="+b[j]); } System.out.println("a数组的长度是:"+a.length); System.out.println("b数组的长度是:"+b.length); } }
以上程序在输出数组元素以外还能使用length方法知道数组的长度,如本例中a数组的长度是:5 b数组的长度是:7
下面是著名的斐波那契数列java程序(用数组实现)
public class arraryTest4 { public static void main(String[] args) { int[] f=new int[100]; //声明了一个整形数组,拥有20个元素 f[0]=0; f[1]=1; for(int i=2;i<f.length;i++) { f[i]=f[i-1]+f[i-2]; System.out.println("f["+i+"]="+f[i]); } } }
结束输出如下(给出前20项)
f[2]=1 f[3]=2 f[4]=3 f[5]=5 f[6]=8 f[7]=13 f[8]=21 f[9]=34 f[10]=55 f[11]=89 f[12]=144 f[13]=233 f[14]=377 f[15]=610 f[16]=987 f[17]=1597 f[18]=2584 f[19]=4181 f[20]=6765 ...
4 java处理二维数组
在实际情况中很多时候一维数组不满足开发人员的使用需求,可能需要用到二维或者更高维数组。先看下面这个例子:
///使用两个数组分别代表空间中的x和y轴 ///通过循环语句将对应的每一个坐标上的元素输出 public class arraryTest5 { public static void main(String[] args) { // 声明 二维数组 char[][] a; // 告诉一维是4个元素,二维是10个元素 a = new char[4][10]; // 为一维赋值 a[0] = new char[10]; a[1] = new char[10]; a[2] = new char[10]; a[3] = new char[10]; // 通过索引为二维赋值 a[0][0] = 65; a[1][0] = 67; a[2][0] = 69; a[3][0] = 71; // 通过嵌套for循环为二维赋值 for (int i = 0; i < a.length; i++) { for (int j = 1; j < a[i].length; j++) { a[i][j] = (char) (a[i][j - 1] + ace2 1); System.out.print(a[i][j - 1]); } System.out.println(); } } }
输出结果如下:
ABCDEFGHI CDEFGHIJK EFGHIJKLM GHIJKLMNO
创建一个二维数组表示行和列,给每一行的第一个元素赋初值,之后用for循环给整个数组进行赋值操作。最后输出得到以上字符输出。
在这里说一下,理解数组(特别是高维数组以二维数组为例)在内存中的存放有利于对数组的操作,在C语言里面使用指针进行多维数组处理也比较灵活(虽然java里面没有指针一说),在这里数组是先进行行存储再进行列存储的,并且地址连续。高维数组的使用最主要的是将实际情况中的功能分析后映射成数组模型,灵活使用。
相关文章推荐
- java lock 与 synchronized
- myeclipse
- Java并发(一)线程管理
- My Java 8 in Action
- Java WebSocket生命周期
- 将字符串转换成java逻辑运算
- Java Instrument (六) 动态重定义Class
- 采用spring,maven,xfire/cxf 实现SOAP的WebService,并用C#作为客户端调用
- java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
- Java-if 嵌套结构
- 我写的dao层
- eclipse对于虚拟内存的溢出处理
- springMVC视频教程
- Java内存模型 之三个特性:
- 对于Android开发中Eclipse出现的“heap space”的问题
- 基础篇—if和三元运算的区别
- 关于Java中的环境变量CLASSPATH
- java的一些知识(八)
- maven项目下使用webservice spring mvc + cxf
- java操作hdfs实例,自己封装好的