Java 语言中提供的数组是用来存储固定大小的同类型元素。

声明数组变量

double[] myList; // 首选的方法

double myList[]; // 效果相同,但不是首选方法

创建数组

  1. dataType[] arrayRefVar = new dataType[arraySize];
  1. dataType[] arrayRefVar = {value0, value1, ..., valuek};

处理数组

数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者 foreach 循环

  1. public static void main(String[] args) {
  2. double[] myList = {1.9, 2.9, 3.4, 3.5};
  3.  
  4. // 打印所有数组元素
  5. for (int i = 0; i < myList.length; i++) {
  6. System.out.println(myList[i] + " ");
  7. }
  8. // 计算所有元素的总和
  9. double total = 0;
  10. for (int i = 0; i < myList.length; i++) {
  11. total += myList[i];
  12. }
  13. System.out.println("Total is " + total);
  14. // 查找最大元素
  15. double max = myList[0];
  16. for (int i = 1; i < myList.length; i++) {
  17. if (myList[i] > max) max = myList[i];
  18. }
  19. System.out.println("Max is " + max);
  20. }

foreach 循环

JDK 1.5 引进了一种新的循环类型,被称为 foreach 循环或者加强型循环,它能在不使用下标的情况下遍历数组。

  1. public class TestArray {
  2. public static void main(String[] args) {
  3. double[] myList = {1.9, 2.9, 3.4, 3.5};
  4.  
  5. // 打印所有数组元素
  6. for (double element: myList) {
  7. System.out.println(element);
  8. }
  9. }
  10. }

数组作为函数的参数

数组可以作为参数传递给方法。

例如,下面的例子就是一个打印 int 数组中元素的方法:

  1. public static void printArray(int[] array) {
  2. for (int i = 0; i < array.length; i++) {
  3. System.out.print(array[i] + " ");
  4. }
  5. }

数组作为函数的返回值

  1. public static int[] reverse(int[] list) {
  2. int[] result = new int[list.length];
  3.  
  4. for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
  5. result[j] = list[i];
  6. }
  7. return result;
  8. }

完整代码:

  1. public class ArrayDemo {
  2. public static int[] intArray={1,2,3,4}; // 首选的方法
  3.  
  4. // public static int doubleArray2[]; 效果相同,但不是首选方法。沿用c/c++的写法
  5.  
  6. public static void main(String[] args) {
  7. initArray();
  8. printArray(intArray);
  9. intArray = reverse(intArray);
  10. printArray(intArray);
  11. }
  12.  
  13. // 创建数组
  14. public static void initArray() {
  15. int[] intArray1 = new int[10];
  16. int[] intArray2={1,2,3,4};
  17. }
  18.  
  19. // 数组作为函数的参数
  20. public static void printArray(int[] array) {
  21. for (int i = 0; i < array.length; i++) {
  22. System.out.print(array[i] + " ");
  23. }
  24. }
  25.  
  26. // 数组作为函数的返回值
  27. public static int[] reverse(int[] list) {
  28. int[] result = new int[list.length];
  29.  
  30. for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
  31. result[j] = list[i];
  32. }
  33. return result;
  34. }
  35.  
  36. }

【Java集合的详细研究6】Java 数组的更多相关文章

  1. 【Java集合的详细研究8】List,Set,Map用法以及区别

    Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素.一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java ...

  2. 【Java集合的详细研究1】Collections类常用方法总结

    1.sort(Collection)方法的使用(含义:对集合进行排序). 例:对已知集合c进行排序? public class Practice { public static void main(S ...

  3. 【Java集合的详细研究5】Java中Array与ArrayList的主要区别

    1)精辟阐述:可以将 ArrayList想象成一种“会自动扩增容量的Array”. 2)Array([]):最高效:但是其容量固定且无法动态改变:     ArrayList:  容量可动态增长:但牺 ...

  4. 【Java集合的详细研究2】浅谈Arrays.asList的使用

    首先,该方法是将数组转化为list.有以下几点需要注意: (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean) (2)该方法将数组与列表 ...

  5. 【Java集合的详细研究9】Java堆栈(stack)的使用方法

    栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元素以下的其他元素.”先进后出”或”后进先出”就是栈 ...

  6. 【Java集合的详细研究3】Arrays类常用方法

    1.void sort(array)对数组array的元素进行升序排序 2.int binarySearch(array,val):查询元素值val在数组array中的下标 3.String toSt ...

  7. 【Java集合的详细研究4】Java中如何遍历Map对象的4种方法

    方法一 通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使 ...

  8. 【Java集合的详细研究7】Set和List 的关系与区别

    两个接口都是继承自Collection. List (inteface) 次序是List 的最重要特点,它确保维护元素特定的顺序. --ArrayList 允许对元素快速随机访问. --LinkedL ...

  9. 第二十三节:Java语言基础-详细讲解函数与数组

    函数 函数在Java中称为方法,在其他语言中可能称为函数,函数,方法就是定义在类中具有特定功能的程序.函数,在Java中可称为方法. 函数的格式: 修饰符 返回值类型 函数名(参数类型 参数1, 参数 ...

随机推荐

  1. 算法导论--装备线调度(升序&amp;&amp;降序输出)

    题意就先不用讲了吧,感觉自己还没有掌握核心的东西. //心得 //如何保持路径,递归的实现 #include<iostream> #include<cstdio> #inclu ...

  2. #pragma GCC system_header用法

    在看公司公共库的头文件中发现了:#pragma GCC system_header一行,以前没有见过这种用法,在网上查了一下,解释如下: 从#pragma GCC system_header直到文件结 ...

  3. ubantu 文件系统的目录结构

      对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要, ...

  4. python(31) enumerate 的用法

    例子一: b = "abcd" kv_dict = {} pre = 1234 for i, v in enumerate(b): kv_dict['%s-%d.jpg' %(pr ...

  5. 利用对象思想来绘制canvas帧动画

    绘制思路: 1.封装一个对象出来: 2.属性: width . height imgSr speed dir3.行为: render changeDir html文件: <script> ...

  6. eclipse javaee 插件安装

    eclipese 精简版安装java ee插件 , 按图走  (eclipse 版本 : Indigo Service Release 1   (3.7.1)) java ee 在线安装地址: htt ...

  7. 完成wamp安装后Mysql配置记录

    注意:下面如没有特殊说明,默认都是修改my.ini配置,修改完配置需要重启mysql服务. 1.安装完wamp后输入命令有乱码提示: 运行mysql命令时,出现的错误提示是乱码 :    ERROR ...

  8. 找你妹+ipad+wifi,回顾那年的经典游戏

    昨天,不是从前天同事拿平板给我后,就没睡过一个安稳觉. 先是看电视看得爽歪了,再就是昨天晚上的游戏之夜.IPAD比較老.连系统都不好更新了.就用了留存的应用. 打开酷我看看有什么音乐推荐,听到一首&l ...

  9. linux/unix 段错误捕获_转

    转自:linux/unix 段错误捕获[续] 本文为“在C/C++中捕获段错误,打印出错的具体位置”的续篇,进一步解决涉及动态链接库的情况.   背景知识: ·linux/unix下动态链接库的基本原 ...

  10. BloomFilter——大规模数据处理利器[转]

    原文链接:原文 Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合. 一. 实 ...