一、for_each 循环
Java有一种功能很强的循环结构,可以用来依次处理数组中的每个元素(其它类型的元素集合亦可)而不必指定下标值。
for_each的循环对象一般为一个集合、数组、List、ArrayList、LinkList、Vector等。
其格式是:
for(元素类型T 每次循环元素的名称O:循环对象){
// 对O进行操作
}
1、for_each遍历数组
public class For_eachDemo1 {
public static void main(String[] args) {
String[] names = {"beibei", "jingjing"};
for (String name : names) {
System.out.println(name);
}
}
}
2、for_each遍历List
public class For_eachDemo2 {
public static void main(String[] args) {
List<String> list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
for(String str : list){
System.out.println(str);
}
}
}
注意:for_each虽然可以用来遍历数组或集合,但只能进行遍历,无法在遍历数组或集合的过程中对其进行修改,而for循环可以对原数组或集合进行修改。
二、Arrays类
1、java.util.Arrays
static String toString (type[] a);
返回含有a中数据元素的字符串,这些数据元素都被放入括号中,并用逗号分隔。
参数:a 类型可为byte、short、int、long、char、boolean、float、double的数组。
static type copyOf (type[] a, int length);
static type copyOf (type[] a, int start, int end);
返回与a类型相同的一个数组,其长度为length或end-start,数组元素为a的值。
参数: a 类型可为byte、short、int、long、char、boolean、float、double的数组。
start 起始下标(包含该值)
end 终止下标(不包含这个值)。这个值可能大于a.length,在这个情况下,结果为0或者为false。
length 拷贝数据元素的长度,如果这个值可能大于a.length,在这个情况下,结果为0或者为false。否则,数组中只有前length个数据元素的拷贝值。
static void sort (type[] a);
采用优化的快速排序的算法对数组进行排序。
参数:a 类型可为byte、short、int、long、char、boolean、float、double的数组。
static int binarySearch (type[] a,type v);
static int binarySearch (type[] a, int start, int end ,type v);
采用二分搜索算法查找值v,如果查找成功,则返回相应的下标值;否则,返回一个负数值r
参数:a 类型可为byte、short、int、long、char、boolean、float、double的数组。
start 起始下标(包含该值)
end 终止下标(不包含这个值)。
v 同a的数据元素类型相同的值。
static void fill(type[] a,type v);
将数据的所有数据元素值设置为v。
参数:a 类型可为byte、short、int、long、char、boolean、float、double的数组。
v 同a的数据元素类型相同的值。
static boolean equals (type[] a,type[] b);
若两个数组大小相同,并且下标相同的元素对应相等,返回true。
参数:a 类型可为byte、short、int、long、char、boolean、float、double的数组。