数组就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号成为下标。组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在
程序设计
中,为了处理方便, 把具有相同类型的若干
变量
按有序的形式组织起来的一种形式。这些按序排列的同类数据
元素
的集合称为数组。 ——这是百度对数组的定义
首先,数组的定义:
元素类型[] 数组名 = new 元素类型[] {元素1,元素2,........} 例如int[] arr = new int[5]
public static void main(String[] args) {
//定义一个可以存放3个数组的容器,注意,数组的脚标从0开始
int[] arr = new int[3];
//位数组赋值
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
System.out.println(arr[0]);
}
//定义一个可以存放3个数组的容器,注意,数组的脚标从0开始
int[] arr = new int[3];
//位数组赋值
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
System.out.println(arr[0]);
}
也可以这样写
public static void main(String[] args) {
int arr[] = {1,2,3};
System.out.println(arr[0]);
}
int arr[] = {1,2,3};
System.out.println(arr[0]);
}
后者直接体现了数组的值和个数。数据明确的情况下可以前面中,不明确时用后者。
public static void main(String[] args) {
int arr[] = {1,2,3};
arr = null;
System.out.println(arr[1]);
}
int arr[] = {1,2,3};
arr = null;
System.out.println(arr[1]);
}
用数组的常见错误:
public static void main(String[] args) {
int arr[] = {1,2,3};
System.out.println(arr[3]);
}
int arr[] = {1,2,3};
System.out.println(arr[3]);
}
//ArrayIndexOutOfBoundsException:数组越界;访问数组时,访问到数组中不存在的脚标。
public static void main(String[] args) {
int arr[] = {1,2,3};
arr = null;
System.out.println(arr[1]);
}
int arr[] = {1,2,3};
arr = null;
System.out.println(arr[1]);
}
//NullPointerException:空指针;当引用没有任何指向值为null的情况,该引用还在用于操作实体。
数组的操作
获取数组中德数据,通常会用到遍历
用for循环遍历数组
public static void main(String[] args) {
int arr[] = { 1, 2, 3, 9, 5, 8, 6, 32, 52, 100 };
//arr.length方法获取数组的长度
for (int i = 0; i < arr.length; i++) {
System.err.println(arr[i]);
}
}
int arr[] = { 1, 2, 3, 9, 5, 8, 6, 32, 52, 100 };
//arr.length方法获取数组的长度
for (int i = 0; i < arr.length; i++) {
System.err.println(arr[i]);
}
}
获取数组中的最值
获取数组中德最大值
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if(arr[i]>max){
max= arr[i];
}
}
return max;
}
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if(arr[i]>max){
max= arr[i];
}
}
return max;
}
获取数组中德最小值
public static int getMin(int[] arr) {
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
if(arr[i]<min){
min= arr[i];
}
}
return min;
}
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
if(arr[i]<min){
min= arr[i];
}
}
return min;
}
数组的排序
从小到大排序数组(选择排序法)
public static void sort(int[] arr) {
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[1]>arr[j]){
int temp = arr[i];
arr[j] = temp;
}
}
}
}
for (int i = 0; i < arr.length-1; i++) {
for (int j = i+1; j < arr.length; j++) {
if(arr[1]>arr[j]){
int temp = arr[i];
arr[j] = temp;
}
}
}
}
从小到大排序数组(冒泡排序)
public static void sort_1(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++)//-x:让每一次比较的元素减少, -1避免越界
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++)//-x:让每一次比较的元素减少, -1避免越界
{
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
还有一个更简单的排序,这是java为我们提供的
java.util.Arrays.sort(arr)