专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
目录
相关文章推荐
芋道源码  ·  面试官:为什么数据库连接很消耗资源? ·  11 小时前  
ImportNew  ·  Java 之父怒斥:AI ... ·  4 天前  
芋道源码  ·  好记性不如烂笔头:Spring(春天) ·  2 天前  
芋道源码  ·  很严重了,大家极限搞钱吧 ·  2 天前  
51好读  ›  专栏  ›  ImportNew

Java 语法糖 1 : 可变长度参数以及 foreach 循环原理

ImportNew  · 公众号  · Java  · 2017-05-27 11:59

正文

请到「今天看啥」查看全文



可变长度参数


先讲可变长度参数,看一段代码:


public static void main(String[] args)

{

print("000", "111", "222", "333");

}

public static void print(String... strs)

{

for (int i = 0; i

{

System.out.println(strs[i]);

}

}


print方法的参数的意思是表示传入的String个数是不定的,看一下代码的运行结果:


000

111

222

333


我用数组遍历的方式成功地将输入的参数遍历出来了,这说明两个问题:


1、可以使用遍历数组的方式去遍历可变参数


2、可变参数是利用数组实现的


既然这样,那我其实main函数也可以这么写,完全可以:


String[] strs = {"000", "111", "222", "333"};

print(strs);


那直接传入一个数组不就好了?问题是,数组是要指定长度的,万一这次我想传2个String,下次我想传3个String怎么办呢?


最后,注意一点,可变长度参数必须作为方法参数列表中的的最后一个参数且方法参数列表中只能有一个可变长度参数。


foreach循环原理


以前对foreach循环就是这么用着,触动我去研究foreach循环的原理的原因是大概两个月前,自己写了一个ArrayList,想用foreach循环遍历一下看一下写的效果,结果报了空指针异常。本文就写写foreach循环的原理,先看一下这么一段代码:


public static void main(String[] args)

{

List list = new ArrayList ();







请到「今天看啥」查看全文