1.数组的简单遍历
数组可以通过for循环进行遍历,从头到尾将数组的每个位置轮询一遍:
package partOne;
/**
* 本类用于进一步练习数组
*/
public class ArraysExct {
public static void main(String[] args) {
//1.创建一个数组,用来存放12个月的天数
int[] month = {31,28,31,30,31,30,31,31,30,31,30,31};
//数组的遍历
//2.通过for循环遍历数组
for (int i=0; i<=month.length-1; i++) {
System.out.println((i+1)+"月有"+month[i]+"天");
}
}
}
我们通过数组下标来操作数组中的元素:
month[0]
代表数组的开始,
month[month.lenght-1]
表示数组的结束,
变化情况为++
2.增强for循环对数组的遍历
同时,JAVA有一种功能很强的循环结构——增强for循环,其可以依次处理数组(或者其他元素集合)中的每个元素,而不用考虑下标的影响。
增强for循环的语法结构为:for(数据类型 用来接收数据的变量名 :原始数据的变量名){};
package partOne;
import java.util.Arrays;
/**
* 本类用于测试增强for循环对数组的遍历
* */
public class ArraysExct2 {
public static void main(String[] args) {
//1.创建一个char类型的简单数组
char[] a = {'a','b','c','d','e','f'};
//2.使用增强for循环遍历:输入foreach后便可有自动提示
for (char c : a) {
System.out.println(c);
}
}
}
3.数组的排序
Arrays.sort(数组)可对数组进行排序,对于基本类型的数组使用的是优化后的快速排序算法,效率高
对引用类型数组,使用的是优化后的合并排序算法;
package partOne;
import java.util.Arrays;
/**本类用于测试数组的工具类Arrays*/
public class TestArraysSort {
public static void main(String[] args) {
//1.创建无序数组
int[] a = {21,96,75,23,25};
//底层使用的排序算法是进行优化后的快速排序算法
Arrays.sort(a);//对无序数组进行直接排序
System.out.println(Arrays.toString(a));
}
}
4.数组的练习
4.1 数组与方法的存数据,取数据
- 将上方代码创建一个m1方法,方便后续使用,用于从数组中取数据
- 创建一个动态数组,长度为10,放入方法m2中,用于从数组中存数据
package partOne;
import java.util.Arrays;
/**
* 本类用于进一步练习数组
*/
public class ArraysExcts {
public static void main(String[] args) {
m1(); //用于从数组中取数据
m2(); //用于从数组中存数据
}
private static void m2() {
// 动态创建长度为10的数组
int[] a= new int [10];
//遍历数组,一次给数组的每一个位置上的元素赋值
//i代表的是数组的下标,从0开始,最大下标是数组的长度-1
for(int i=0; i<=a.length-1; i++){
// 根据每轮循环到的i,作为数组下标,操作数组对应位置上的元素
a[i] = i+4;
}
//循环结束后,说明数组的每个位置都经历了赋值(存数据)
System.out.println(Arrays.toString(a));
//[4,5,6,7,8,9,10,11,12]
}
private static void m1() {
// 创建方法
//1.创建一个数组,用来存放12个月的天数
int[] month = {31,28,31,30,31,30,31,31,30,31,30,31};
//数组的遍历
//2.通过for循环遍历数组
for (int i=0; i<=month.length-1; i++) {
System.out.println((i+1)+"月有"+month[i]+"天");
}
}
}
4.2 存入随机数据以及存入随机长度的数据
package partOne;
import java.util.Arrays;
import java.util.Random;
public class ArraysExcts2 {
public static void main(String[] args) {
m1(); //创建一个随机数组
m2(); //创建一个随机长度的数组
}
private static void m2() {
// 创建一个长度随机的数据
// int lenght = new Random().nextInt(10); 限定最多位数为10;
int lenght = new Random().nextInt(5)+5; //[0,5]--->[5,10]
int[] a = new int[lenght]; //数组的长度是生成的随机长度lenght
//遍历数组,依次向数组中的的每个位置存入随机值
for (int i=0; i<=a.length-1; i++) {
a[i] = new Random().nextInt(100);
}
System.out.println(Arrays.toString(a));
}
private static void m1() {
//动态创建一个长度为10的数组
int[] a = new int[10];
//遍历数组,依次向数组中的每个位置存入随机值
for (int i=0; i<=a.length-1; i++) {
a[i] = new Random().nextInt(100);
}
//打印存入的数组
System.out.println(Arrays.toString(a));
}
}