JDK5.0新特性系列---2.新的for循环

 

import java.util.ArrayList;

import java.util.List;

 

/**

 * 新的for循环,格式为for(type x:type y)

 * 表示遍历数组或集合y的元素,把元素值赋给x

 */

public class ForEach {

       /**对整数数组求和*/

       public static long getSum(int[] nums) throws Exception{

              if(nums == null)

                     throw new Exception("错误的参数输入,不能为null!");

              long sum = 0;

              //依次取得nums元素的值并累加

              for(int x : nums){

                     sum += x;

              }

              return sum;

       }

       /**对整数列表求和*/

       public  static long getSum(List<Integer> nums) throws Exception{

              if(nums == null)

                     throw new Exception("错误的参数输入,不能为null!");

              long sum = 0;

              //可以与遍历数组一样的方式遍历列表

              for(int x:nums){

                     sum += x;

              }

              return sum;

       }

       /**求多维数组的平均值*/

       public static int getAvg(int[][] nums) throws Exception{

              if(nums == null)

                     throw new Exception("错误的参数输入,不能为null!");

              long sum = 0;

              long size = 0;

              //对于二维数组,每个数组元素都是一维数组

              for(int[] x : nums){

                     //一维数组中的元素才是数字

                     for(int y : x){

                            sum += y;

                            size ++;

                     }

              }

              return (int)(sum/size);

       }

      

       public static void main(String[] args)throws Exception{

              int[] nums = {456,23,-739,163,390};

              List<Integer> list_I = new ArrayList<Integer>();

              for(int i = 0; i < 5; i++){

                     list_I.add(nums[i]);

              }

              System.out.println(getSum(nums));

              System.out.println(getSum(list_I));

              int[][] numss = {{1,2,3},{4,5,6},{7,8,9,10}};

              System.out.println(getAvg(numss));

       }

}

 

 

 

 

 

 

 

 

时间: 2024-10-21 20:11:20

JDK5.0新特性系列---2.新的for循环的相关文章

JDK5.0新特性系列---目录

  JDK5.0新特性系列---目录   JDK5.0新特性系列---1.自动装箱和拆箱   JDK5.0新特性系列---2.新的for循环 JDK5.0新特性系列---3.枚举类型 JDK5.0新特性系列---4.静态导入 JDK5.0新特性系列---5.可变长参数Varargs JDK5.0新特性系列---6.格式化输出 JDK5.0新特性系列---7.使用ProcessBuilder执行本地命令 JDK5.0新特性系列---8.泛型编程 JDK5.0新特性系列---9.注释功能Annota

JDK5.0新特性系列---11.6线程 BlockingQueue

  importjava.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;   /**     本例介绍一个特殊的队列:BlockingQueue,如果BlockQueue是空的,从BlockingQueue取东西的操作将会

MySQL · 特性分析 ·MySQL 5.7新特性系列三

继上两期月报,MySQL5.7新特性之一介绍了一些新特性及兼容性问题,MySQL 5.7新特性之二介绍了临时表的优化和实现. 这期我们一起来学习下undo空间管理,重点介绍truncate功能. 1. 背景 InnoDB存储引擎中,undo在完成事务回滚和MVCC之后,就可以purge掉了,但undo在事务执行过程中,进行的空间分配如何回收,就变成了一个问题. 我们亲历用户的小实例,因为一个大事务,导致ibdata file到800G大小. 我们先大致看下InnoDB的undo在不同的版本上的一

JDK5.0新特性系列---11.3线程 锁Lock

  import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.Reent

JDK5.0新特性系列---11.1线程 Callable和Future

  import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future;   /**     从本节开始,主要介绍J2SE5.0与线程相关的新特性,新的线程类主要集中在java.util.concurrent 包中,本节实例将介绍如何使用java.uti

C# 3.0新特性系列:隐含类型var

一.神奇的var 在C#3.0中增加了一个变量声明var,这个声明和JavaScript 的 var类似,但 也有不同. 1. 相同点,它可以用var来声明任何类型的局部变量. 2. 不同点,它仅仅负责告诉编译器,该变量需要根据初始化表达式来推断变 量的类型,而且只能是局部变量. 二.相同点 它可以声明 var integer = 10; var name = "edisundong"; var numbers = new int[] { 1, 2, 3 }; 三.不同点 var仅仅是

JDK5.0的11个主要新特征

1  泛型(Generic) 1.1 说明 增强了java的类型安全,可以在编译期间对容器内的对象进行类型检查,在运行期不必进行类型的转换.而在j2se5之前必须在运行期动态进行容器内对象的检查及转换 减少含糊的容器,可以定义什么类型的数据放入容器 ArrayList<Integer> listOfIntegers; // <TYPE_NAME> is new to the syntaxInteger integerObject;listOfIntegers = new Array

MySQL · 特性分析 ·MySQL 5.7新特性系列四

继上三期月报:MySQL 5.7新特性之一介绍了一些新特性及兼容性问题MySQL 5.7新特性之二介绍了临时表的优化和实现MySQL 5.7新特性之三介绍了undo表空间的truncate功能 这期我们一起来学习下MySQL 5.7的并行复制. 1. 背景 MySQL的master<->slave的部署结构,使用binlog日志保持数据的同步,全局有序的binlog在备库按照提交顺序进行回放. 由于新硬件的发展,SSD的引入和多core的CPU,master节点的并发处理能力持续提升,slav

一起谈.NET技术,.NET 4九大新特性 FrameWork达到新境界

本文将向您介绍.NET框架4中的主要功能和改进特征.请注意,本文中并没有提供有关这些新功能的综合信息,并随时可能更改. 请注意,.NET框架4引入了一个改进的安全模式.有关该内容的更多的信息,请参阅文章<.NET框架4中的安全变化>. 具体来说,本文中将介绍.NET框架4的如下一些新功能和改进特征: 应用程序兼容性和部署 内核新功能及改进 托管扩展框架 并行计算 网络编程 Web开发 客户端开发 数据 通信和工作流 一.应用程序兼容性和部署 除了一些在安全.标准遵从.正确性.可靠性及性能等方面