一维数组
// 数组大小
int size = 10;
// 定义数组
double[] myList = new double[size];
//或者直接
double[] myList = { 1.9, 2.9, 3.4, 3.5 };
注意事项
- 数组未经初始化不能使用
为数组分配一组类型相同、地址连续的存储空间
为每个数组元素设置默认值
- 数组访问时,下标从0开始
- 数组长度可以通过length属性获取,arr.length
- 数组元素一旦被初始化,其元素个数就不允许改变
多维数组
type[][] typeName = new type[typeLength1][typeLength2];//二维数组
Arrays 类
类名 | 说明 |
---|---|
binarySearch(Object[] a, Object key) | 用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。 |
equals(long[] a, long[] a2) | 如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
fill(int[] a, int val) | 将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
sort(Object[] a) | 对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
打印数组
import java.util.Arrays;
public class Study_2 {
public static void main(String[] args) {
int[] ns = {29, 34, 56, 67, 89, 9, 6, 4};
System.out.println(ns);
System.out.println(Arrays.toString(ns));
}
}
以上实例输出:
[I@60e53b93
[29, 34, 56, 67, 89, 9, 6, 4]
- 直接打印出的是数组的引用地址
遍历数组
for循环
public class Study_2 {
public static void main(String[] args) {
int[] ns = {29, 34, 56, 67, 89, 9, 6, 4};
for (int i = 0; i < ns.length; i++) {
System.out.println(ns[i]);
}
}
}
- 可拿到数组索引
for each
public class Study_2 {
public static void main(String[] args) {
int[] ns = {29, 34, 56, 67, 89, 9, 6, 4};
for (int n : ns) {
System.out.println(n);
}
}
}
- 可直接拿到数组值却无法拿到索引
数组排序
- 数组排序会修改数组本身
冒泡排序
import java.util.Arrays;
public class Study_2 {
public static void main(String[] args) {
int[] ns = {29, 34, 56, 67, 89, 9, 6, 4};
for (int i = 0; i < ns.length; i++) {
for (int j = 0; j < ns.length - i - 1; j++) {
if (ns[j] > ns[j + 1]) {
int temp = ns[j];
ns[j] = ns[j + 1];
ns[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(ns));
}
}
- 原理:每一轮循环后,最大的一个数被交换到末尾,下一轮循环“刨除”最后的数,每一轮循环都比上一轮循环的结束位置靠前一位。
sort方法
import java.util.Arrays;
public class Study_2 {
public static void main(String[] args) {
int[] ns = {29, 34, 56, 67, 89, 9, 6, 4};
Arrays.sort(ns);
System.out.println(Arrays.toString(ns));
}
}
文章写的很细致,赞一个