数组就是相同数据的有序集合
如:int[ ] nums; 声明一个数组
nums = new int[10];
nums[0] = 0;
nums[1] = 1;
nums[2] = 2;
nums[3] = 3;
…
nums[9] = 9;
数组的下标是从0开始的,所以定义一个长度为10的数组,下标最大为9
通过数组的名称[下标]来访问
如:nums[9] 的值为9
public class Demo1{
public static void main(String[] args){
int[] nums = new int[10];
//通过for循环来给数组赋值
for(int i = 0;i < nums.length;i++){
nums[i] = i;
}
//通过for循环来取值
for(int j = 0;j < nums.length;j++){
System.out.println(nums[j]);
}
//输出的结果为0 1 2 3 4 5 6 7 8 9
/*
注:长度为10的数组下标最大为9,如果出现10就会报错
*/
}
}
如果查询nums[10],就会报错
public class Demo1{
public static void main(String[] args){
int[] arrays = {1,2,3,4,5,6,7,8,9,9,9};
System.out.print(arrays[0]);//会输出arrays数组的第一位元素1
}
}
public class Demo1{
public static void main(String[] args){
int[] arrays = new int[10];
arrays[9] = 10;
for(int i = 0;i < arrays.length;i++){
System.out.print(arrays[i]);
}
// 输出的结果为 0 0 0 0 0 0 0 0 0 10
}
}
public class Demo1{
public static void main(String[] args){
// 引用类型的数组
String[] str = {"AAA","BBB","CCC"};
for(int i = 0;i < str.length;i++){
System.out.print(str[i]);
}
// 输出的结果为 AAA BBB CCC
}
}
public class Demo1{
int a = 10;//a就是一个成员变量
public static void main(String[] args){
int[] arrays = new int[10];//arrays是一个局部变量
arrays[9] = 10;
for(int i = 0;i < arrays.length;i++){
System.out.print(arrays[i]);
}
}
/*
成员变量:也叫属性,也可以叫实例变量,全局变量,它在类中定义,只要是类中的方法都可以对它直接访问
局部变量:在方法中的变量只能在方法中访问,在其它方法中不能直接访问
*/
}
ArrayIndexOutOfBoundsException
public class Demo1{
public static void main(String[] args){
int[] arr = new int[10];
// 为数组赋值
for(int i = 0;i < arr.length;i++){
arr[i] = i;
}
// 普通的for循环输出数组
for(int j = 0;j < arr.length;j++){
System.out.print(arr[j]);
}
}
}
public class Demo1{
public static void main(String[] args){
int[] arrs = new int[10];
// 为数组赋值
for(int i = 0;i < arrs.length;i++){
arrs[i] = i;
}
// 增强型for循环输出数组
for(int arr : arrs){
System.out.print(arr);
}
}
}
public class Demo2{
public static void main(String[] args){
int[] arrs = new int[10];
// 为数组赋值
for(int i = 0;i < arrs.length;i++){
arrs[i] = i;
}
//将数组arrs作为参数传递给printArray方法
printArray(arrs);
}
public static void printArray(int[] arr){
for(int i = 0;i < arr.length;i++){
System.out.print(arr[i]);
}
}
}
// 案例:将数组中的数进行反转
package 数组;
public class Demo01 {
public static void main(String[] args){
int[] arrs = new int[10];
// 为数组赋值
for(int i = 0;i < arrs.length;i++){
arrs[i] = i;
}
// 将数组进行反转
int[] ints = reverse(arrs);
for(int i = 0;i < ints.length;i++){
System.out.print(ints[i]);
}
}
public static int[] reverse(int[] arr){
int[] result = new int[10];
for(int i = 0,j = arr.length - 1;i < arr.length;i++,j--){
result[j] = arr[i];
}
return result;
}
}
多维数组就是数组的数组
普通的数组是在数组里面存放一个数,而二维数组就是在数组里面在存放一个数
package 数组;
public class Demo2 {
public static void main(String[] args) {
int[] arr1 = new int[10];// 这是一个普通的数组
int[][] arr2 = new int[10][10];//这是一个二维数组
//为普通数组赋值
for(int i = 0;i < arr1.length;i++){
arr1[i] = i;
}
//为二维数组赋值
for(int i = 0;i < arr2.length;i++){
for(int j = 0;j < arr2[i].length;j++){
arr2[i][j] = i + j;
}
}
System.out.println("普通数组输出:");
//普通数组输出
for(int i = 0;i < arr1.length;i++){
System.out.print(arr1[i] + " ");
}
System.out.println();
System.out.println("二维数组输出:");
// 二维数组输出
for(int i = 0;i < arr2.length;i++){
for(int j = 0;j < arr2[i].length;j++){
System.out.print(arr2[i][j] + "\t");
}
System.out.println();
}
}
}
二维数组就可以看成是一张表格,第一个[ ]表示它有多少行,第二个[ ]表示它有多少列
Arrays是Java的一个类,使用它可以对数组进行一些操作
import java.util.Arrays;
public class Demo5 {
public static void main(String[] args) {
int[] arr = {111,11,11222,3,2244,55,433234,24543245,4242,21123,23543};
//直接打印arr [I@1540e19d
System.out.println(arr);
//使用toString方法将数组打印出来
// [111, 11, 11222, 3, 2244, 55, 433234, 24543245, 4242, 21123, 23543]
System.out.println(Arrays.toString(arr));
//使用sort方法对数组的元素进行排序
//[3, 11, 55, 111, 2244, 4242, 11222, 21123, 23543, 433234, 24543245]
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
使用工具类可以帮我们更加快捷的完成一些对数组的操作
1)比较数组中,两个相邻的元素,如果第一个数比第二个数大,就交换他们的位置
2)每一次比较都会产生一个最大或者最小的数
3)下一次就可以少一次排序
4)依次循环,直到结束
import java.util.Arrays;
public class Demo6 {
public static void main(String[] args) {
int zh = 0;//用于两个数交换位置
int[] arr = {123,234,123,1232,34123,23123,123,232342,22};
for(int i = 0;i < arr.length - 1;i++){//arr.length - 1是因为经历了arr.length - 2次遍历后,实际上已经将数组排好序了
for(int j = 0;j < arr.length - 1 - i;j++){
if(arr[j + 1] > arr[j]){
zh = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = zh;
}
}
}
//输出循环后的数组
System.out.println(Arrays.toString(arr));
//输出结果:[232342, 34123, 23123, 1232, 234, 123, 123, 123, 22]
}
}