匿名数组
package com.Demo_2;
import java.util.Arrays;
public class ShuZu {
public static void main(String[] args){
int[] a=new int[3];//创建一个数组大小为3的数组
//int[] a={1,2,3,9,10};数组的初始化,直接使用int[] a={};不需要使用new
a=new int[] {13,19,22};
int[] anonymous={13,11,10};
a=anonymous;//创建一个匿名数组,同时是数组a的引用指向匿名数组,修改数组a
System.out.println(Arrays.toString(a));
/*for(int i=0;i<20;i++)
{
a[i]=i;
System.out.println(Arrays.toString(a));
}*/
}
}
数组拷贝 排序
public static void arraycopy(from, fromIdex, to, toIdex, count)
from 表示原数组,fromIdex表示原数组的开始点。to表示目标数组,toIdex表示目标数组的开始点,count表示复制长度。
int[] b={1,2,3,4,5,9,10};
System.arraycopy(b,0,b,3,3);
System.out.println(Arrays.toString(b));
System.arraycopy(),实现过程,是先将原数组b从第0个索引开始,将三个数组放入一个临时数组中{1,2,3},再到目标数组中b第三个索引后开始拷贝。
运行结果为[1,2,3,1,2,3,10]。
但是新生成的数组b不能超过原数组b的长度,否则会出现越界异常。
Arrays.sort(a);
参数a的类型只能是 int long short char byte boolean float double类型
使用了优化的快速算法,将数组a排序。
命令行参数
每一个Java应用程序都有一个带String[] args参数的main方法,这个参数表名main方法将接受一个字符串数组,也就是命令行参数。在cmd命令行运行,将数据传入数组中。
For each循环
For each循环的格式如下
for(variable : collection)statement
collection为数组或集合
例如:
for(int element:a)
System.out.println(element);
相当于:
for(int i=0;i<a.length;i++)
{
System.out.println(a[i])
}
for each语句是java5的新特征之一,在遍历数组、集合方面,for each为开发人员提供了极大的方便。
for each语句是for语句的特殊简化版本,但是for each语句并不能完全取代for语句,然而,任何的for each语句都可以改写为for语句版本。
for each并不是一个关键字,习惯上将这种特殊的for语句格式称之为“for each”语句。从英文字面意思理解for each也就是“for 每一个”的意思。实际上也就是这个意思。
for each的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
foreach语句的局限性
通过上面的例子可以发现,如果要引用数组或者集合的索引,则for each语句无法做到,for each仅仅老老实实地遍历数组或者集合一遍。