本文由疯狂软件教育中心整理,更多Java等高新技术,疯狂软件期待与你交流。
一、JAVA中的数组
(1)数组的定义:是有相同类型的、用一个标识符名称封装到一起的一个对象序列或基本数据类型数据序列。
数组是一种最简单的复合数据类型。
数组可以是一维的也可以是多维的。
(2)多维数组定义:
type arrayName[ ] 或 type[ ] arrayName
说明:
type : 可以是java中任意的数据类型,包括简单类型和复合类型(也可以是数组)
arrayName :为一个合法的标识符;
[ ]指明该变量是一个数组类型的变量。
例如声明一个数组x:
int x[ ];
int[ ] x;
声明一个数组,每个元素都是整数数据。
声明的时候不指定数组的长度。
只声明的数组是不能访问它的任何元素的
(3)维数组分配空间
用new关键为对象分配其内存空间。
type arrayName = new type[arraySize]
例如: int x = new int[100];
通过引用来使用数组元素 :arrayName[index]
index为数组下标,可是整型常数或表达式。
index取值从 0 到 arraySize-1;
当 x = null 即该数组对象不再被任何引用变量使用的时候,“垃圾回收器”将自动释放该内存资源
(4)数组的静态初始化
int a[ ]={1,2,3,4};
int a[ ]=new int[ ]{3,4,5};
动态初始化
int intArray[];//声名数组
intArray = new int[5];//为数组分配空间
注意:声明数组时,无论用何种方式定义数组,都不能指定其长度
int a[5]; ?声明的时候不能指定长度
(5)使用时要注意的问题
空指针异常(NullPointException)
只声明但没有初始化的时候直接使用该变量。
数组越界异常(ArrayIndexOutBoundsException)
所有数组的下标都从0开始
int[] a ={1,2,3};
for (int i= 0; i< a.length; i++){
System.out.println(a[i]);
}
其中length属性表示数组的长度
二、多维数组
java没有真正的多维数组,只有数组的数组
(1)二维数组的定义
type[ ][ ] arrayName;
int xx[ ][ ] = new int[3][3];
int[ ][ ] xx = {{3,2,7},{1,5},{6}};
(2)静态初始化
int xx[ ][ ]={{3,2,7},{1,5},{6}};
Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不
要求二维数组每一维的大小相同。
三、Arrays
新需求:对前面的scores数组按照分数从高到低进行排序?
自己写一个排序方法进行排序
使用Arrays对象
Java.util.Arrays类
提供了用来操作数组(比如排序和搜索)的各种方法类中的方法都是静态的static,可以直接调用对指定的数组进行排序
static void sort(int[ ] a)
static void sort(int[ ] a, int fromIndex, int toIndex)
…….//基本数据类型都支持了
static void sort(Object[ ] a)
static void sort(Object[ ] a, int fromIndex, int toIndex)
四、String
定义:String类代表了字符串对象,提供了对字符串进行操作的各种方法
方法 说明
public char charAt(int index) 返回指定下标的字符
public boolean equals(Object o) 比较此字符串与指定的对象
public int indexOf(int ch) 搜索第一个出现的字符ch(或字符串value)的下标
public int indexOf(String value)
public int lastIndexOf(int ch) 搜索最后一个出现的字符ch(或字符串s)的下标
public int lastIndexOf(String s)
public String substring(int index) 提取从位置索引开始的字符串部分
public String trim() 去掉字符串前后的空格