栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

夯实Java基础(一)----数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

夯实Java基础(一)----数组

一、数组的定义

数组(Array):多个相同类型的数据按照一定的顺序排列的集合。(数据容器)

1、数组的基本特性:

①、数组是引用数据类型,元素可以是任何数据类型,每个数据元素存放一个数据,可通过索引访问数据元素、赋值取出等。下标从0开始。

②、创建数组时会在内存开辟一整块连续的空间,而数组的引用则是这块连续空间的首地址。所以一旦初始化完成,数组在内存所占用的空间就被固定,所以数组长度不可变。

2、数组的声明与初始化 ①、声明
元素的数据类型[] 数组的名称;
int[] age;
②、初始化

(1)、静态初始化:定义数组的同时分配内存并赋值,只给顶元素值,不指定数组长度

数据类型[] 数组名 = {元素1,元素2,元素3...};
int[] array={1,2,3...}

(2)、动态初始化:只指定数组长度,由系统分配元素初始值(默认值)

数据类型 [ ]  数组名称 = new 数据类型 [数组长度]
int[] array=new int[10];

(3)、错误写法:

//未指定数组长度
int [] arr1=new int[];
//数组前面[]不能写长度
int [5] arr2=new int[5];
//静态初始化不能写长度
int [] arr3=new int[3]{1,2,3};

3、数组元素访问与遍历 ①、访问数组元素并赋值
//声明一个长度为3的数组
int[] arr=new int[3];
//给arr第1个元素赋值1
arr[0]=1;
//给arr第2个元素赋值2
arr[1]=2;
//给arr第3个元素赋值3
arr[2]=3;

长度(length)为3的数组,下标为arr[0]、arr[1]、arr[2]

②、数组的遍历

数组的长度:数组名.length

数组的索引范围:[0,length-1]

//声明一个元素为1,2,3的int型数组
int[] arr=new int[]{1,2,3};
//遍历arr数组
for (int i = 0; i < arr.length; i++) {
     System.out.println(arr[i]);
}
// 使用增强for循环foreach进行遍历
for (int i : arr) {
      System.out.println(i);
}
//使用Arrays.toSting(数组名)进行遍历
System.out.println(Arrays.toString(arr));

4、数组的内存图分析
public static void main(String[] args) {
    int[] arr = new int[3];
    int[] arr2 = new int[2];
    System.out.println(arr);
    System.out.println(arr2);
}

5、数组的使用 ①、冒泡排序
public class ArrayTest {
    public static void main(String[] args) {
        int[] arr=new int[]{56,12,32,98,78,45,-45,3,55,-16};
        for (int i = 0; i < arr.length; i++) {
            for (int j=0;jarr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"t");
        }
    }
}
②、查找
public class ArrayTest {
    public static void main(String[] args) {
        String[] str=new String[]{"AA","BB","CC","DD","EE","FF","GG"};
        String dest="BB";
        boolean isFlag=true;
        for (int i = 0; i < str.length; i++) {
            if (dest.equals(str[i])){
                System.out.println("找到了元素,位置在"+(i+1));
                isFlag=false;
                break;
            }
        }
        if (isFlag) {
            System.out.println("对不起,没有找到");
        }
    }
}
③、数组反转
public class ArrayTest {
    public static void main(String[] args) {
        String[] str=new String[]{"AA","BB","CC","DD","EE","FF","GG"};
        System.out.println("反转前:");
        for (int i = 0; i < str.length; i++) {
            System.out.print(str[i]+"t");
        }
        for(int i=0;i 
6、数组的工具类 

java.util.Arrays工具类

  • static int binarySearch(int[] a, int key) :要求数组有序,在数组中查找key是否存在,如果存在返回第一次找到的下标,不存在返回负数
  • static int[] copyOf(int[] original, int newLength) :根据original原数组复制一个长度为newLength的新数组,并返回新数组
  • static int[] copyOfRange(int[] original, int from, int to) :复制original原数组的[from,to)构成新数组,并返回新数组
  • static boolean equals(int[] a, int[] a2) :比较两个数组的长度、元素是否完全相同
  • static void fill(int[] a, int val) :用val填充整个a数组
  • static void fill(int[] a, int fromIndex, int toIndex, int val):将a数组[fromIndex,toIndex)部分填充为val
  • static void sort(int[] a) :将a数组按照从小到大进行排序
  • static void sort(int[] a, int fromIndex, int toIndex) :将a数组的[fromIndex, toIndex)部分按照升序排列
  • static String toString(int[] a) :把a数组的元素,拼接为一个字符串,形式为:[元素1,元素2,元素3。。。]
import java.util.Arrays;
import java.util.Random;

public class Test {
    public static void main(String[] args) {
        int[] arr = new int[5];
        //1、打印数组,输出地址值
        System.out.println(arr); // [I@2ac1fdc4
        //2、toString;数组内容转为字符串
        System.out.println("arr数组初始状态:" + Arrays.toString(arr));
        //3、fill 数组填充3
        Arrays.fill(arr, 3);
        System.out.println("arr数组现在状态:" + Arrays.toString(arr));
        //赋值操作
        Random rand = new Random();
        for (int i = 0; i < arr.length; i++) {
            arr[i] = rand.nextInt(100);//赋值为100以内的随机整数
        }
        System.out.println("arr数组现在状态:" + Arrays.toString(arr));
        //4、copyOf 复制一个长度为10的新数组
        int[] arr2 = Arrays.copyOf(arr, 10);
        System.out.println("新数组:" + Arrays.toString(arr2));
        //5、equals
        System.out.println("两个数组的比较结果:" + Arrays.equals(arr, arr2));
        //6、sort 排序,从小到大
        Arrays.sort(arr);
        System.out.println("arr数组现在状态:" + Arrays.toString(arr));
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/943651.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号