Java数组要求所有的数据元素内容都是一致的。有一点与c语言不太一致的,int[]和int是不太一致的。
定义数组:
type[] arrayname;
type ayyayname[];//推荐//
在这里大多已经不在利用第二种了,建议使用第一种。
数组的初始化:
1.静态初始化:
基本格式:
//定义一个int数组类型变量,intarr;
int[] intarr;
intarr = new int[] {5,6,7,20};
Object[] objArr;
objArr = new String[] {"Java","哇哈哈"};
Object[] objArr2;
object2 = new Object[] {"Java","哇哈哈"};
简化模式:
type[] arrayname = {element1,element2,element3};
定义初始化同步完成:
int[] arrayname = {11,2,3,4};
2.动态初始化:
int[] prices = new int[5];
Object[] books = new string[4];
1.数组元素指定元素内存所需空间,自动分配控内存空间。
整数类型(byte,short,int,long)则数据元素的值是0;
浮点类型(float,double)数据元素的值是0.0;
字符类型(char)数据元素的值是‘\u0000';
布尔类型(boolean),则数据元素的值false。
应用类型(类,接口和数组),则数据类型的值null。
一边指长度,一边指分配初始值。
使用数组:
System.out.println(objArr[1]);//输出第二个元素//
objArr2[0]="Spring";//第一个元素赋值//
这些都是从0开始的。这里需要注意的是:java.long.ArrayIndexOutofBoundsExpection:N(数据索引越界异常),这里的N就代表着试图访问索引的数组。
利用for循环输出price的数值,这里需要注意到的地方是可以使用price.length的方法确定最大值。
//利用for循环输出数组的没个数值。//
for(int i = 0;i<prices.length ; i++)
{
System.out.println(price[i]);
}
完整代码展示:
char[] books = new char[50];
books[0] = "bonstop是大笨蛋";
books[1] = "bonstop天天爱学习";
for(int i = 0 ;i < books.length ;i++)
{
System.out.println(books[i]);
}
不知道为啥,这个错的了,希望有人可以告诉我一下。。。
下面是报错文字;
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Type mismatch: cannot convert from String to char
Type mismatch: cannot convert from String to char
Type mismatch: cannot convert from String to char
Type mismatch: cannot convert from String to char
at Practice.Hello.main(Hello.java:8)
forreach循环
这种方式将直接会去循环整个数组,而无须找长度。
String[] books= {"哈哈哈哈你真聪明","宋慧忠","无聊啦啦啦"};
for(String book : books)
{
System.out.println(book);
}
但在这个地方不太建议利用这种方式进行赋值操作。没有意义,且容易错。
String[] books= {"哈哈哈哈你真聪明","宋慧忠","无聊啦啦啦"};
for(String book : books)
{
book = "疯狂宋慧忠";
System.out.println(book);
}
System.out.println(books[0]);
这里的代码那你可以理解为,这里的foreach创造的是一个临时变量,所以无法改变原来的数值。