MENU

Java_学习记录_数组

January 13, 2021 • Java

一维数组

// 数组大小
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));
    }
}
转载请注明出处,并添加原文地址

Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

已有 1 条评论
  1. 招投标 招投标

    文章写的很细致,赞一个