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

Java之数组入门

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

Java之数组入门

Java之数组入门
  • 前言
  • 一、数组
  • 二、创建和初始化
    • 1、创建
    • 2、静态初始化
    • 3、动态初始化
  • 三、遍历
    • 1、for循环
    • 2、for-each
  • 四、拷贝
  • 五、java.util.Arrays
  • 六、二维数组
    • 1、静态初始化
    • 2、动态初始化
    • 3、Object数组保存表格
    • 4、使用JavaBean来存二维表格
  • 七、Comparable
  • 总结
  • 参考文献
  • 附录

前言

Java数组入门介绍,数组、创建和初始化、遍历、拷贝、Arrays工具类、二维数组、Comparable。

一、数组

相同且有序的有序集合。
1)长度确定
2)类型相同
3)数组也是对象,数组对象也是引用类型。

二、创建和初始化 1、创建
int[] arr;//这种便于理解,数组对象。
int arr[];
2、静态初始化
//静态初始化
        int[] arr = new int[]{1, 2, 3, 4};
        int[] sArr = {1, 2, 3};

new int[]new出的是对象,数组的变量为该对象的属性。

3、动态初始化
 for (int i = 0; i < arr.length; i++) {
            arr[i] = i;
            System.out.println(arr[i]);
        }
三、遍历 1、for循环

不仅可以遍历,还方便修改数组元素。

		int[] arr = new int[3];
        //动态赋值,可动态初始化
        for (int i = 0; i < arr.length; i++) {
            arr[i] = i;
            System.out.println(arr[i]);
        }
2、for-each

增强的for循环,优点简洁,缺点只能读取元素,不能修改。

		//增强的for:for-each只读取,不修改。
		int[] arr = new int[]{1, 2, 3, 4};
        for (int n : arr) {
            System.out.println(n);
        }
四、拷贝
        //2. 数组复制
        int[] arr1 = new int[]{1, 2, 3, 4, 5};
        int[] arr2 = new int[arr1.length];
        System.arraycopy(arr1, 0, arr2, 0, arr1.length);

从arr1的第0个元素开始拷贝arr1.length个元素到arr2,从下标0开始。

五、java.util.Arrays

一个操作数组的工具包,可排序、查找、填充、打印数组内容等。

		int[] arr1 = new int[]{1, 2, 3, 4, 5};
        int[] arr2 = new int[arr1.length];
        //3. Arrays.toString()
        System.out.println(Arrays.toString(arr1));
        //4. Arrays.sort()
        Arrays.sort(arr1);
        //5. 二分查找binarySearch,找到就返回位置,否则返回负数
        //先排序,再二分
        Arrays.sort(arr);
        System.out.println(Arrays.binarySearch(arr, 1));
        //6. 填充Arrays.fill,从0到arr.length,包头不包尾,填充value=1
        Arrays.fill(arr, 0, arr.length, 1);
六、二维数组

一维数组是对象,二维数组也是对象,里面的元素就是一维对象。
其内存图为:

1、静态初始化
int[][] a = new int[3][3]{{1,2,3},{4,5,6},{7,8,9}};
2、动态初始化
        //7. 二维数组,二维数组也是对象
        int[][] a = new int[3][];
        a[0] = new int[1];
        a[1] = new int[2];
        a[2] = new int[3];
        a[0][0] = 1;
        a[1][0] = 2;
3、Object数组保存表格

万物皆对象,对象又像表格一样,即万物皆表格,操作表格变得尤为重要。利用Object是所有类的祖宗类,来存所有类型的数据。

        //8。 Object[][]存表格数据。由于Object是所有类的祖宗。
        Object[][] teachers = new Object[2][];
        teachers[0] = new Object[]{"111", "李老师", "数学"};
        teachers[1] = new Object[]{"222", "王老师", "语文"};
        
4、使用JavaBean来存二维表格
        Student[] sts = new Student[2];
        sts[0] = new Student("111", "李老师", "数学");
        sts[1] = new Student("222", "王老师", "语文");
七、Comparable

对于数字来讲,天然就有大小比较,而对于一个自定义对象,只需实现Comparable接口,实现CompareTo方法就能实现自定义比较大小。

public static class Student implements Comparable {
        String id;
        String name;
        String course;
        @Override
        public int compareTo(Object o) {
            Student s = (Student) o;
            return s.id.compareTo(id) == 1 ? -1 : 1;
        }
    }
总结

1)数组入门。
2)数组即对象,简单数组内存分析。
3)一些常规操作。

参考文献

[1] Java SE 高淇

附录

[1] 可视化算法网站
[2] 完整代码

package com.xhu.java;

import java.util.Arrays;

public class TestArrays {
    public static void main(String[] args) {
        //1.数组遍历
        //静态初始化
        int[] arr = new int[]{1, 2, 3, 4};
        int[] sArr = {1, 2, 3};
        //可操作数组的遍历
        //动态赋值,可动态初始化
        for (int i = 0; i < arr.length; i++) {
            arr[i] = i;
            System.out.println(arr[i]);
        }
        //增强的for:for-each只读取,不修改。
        for (int n : arr) {
            System.out.println(n);
        }
        //2. 数组复制
        int[] arr1 = new int[]{1, 2, 3, 4, 5};
        int[] arr2 = new int[arr1.length];
        System.arraycopy(arr1, 0, arr2, 0, arr1.length);
        //3. Arrays.toString()
        System.out.println(Arrays.toString(arr1));
        //4. Arrays.sort()
        Arrays.sort(arr1);
        //5. 二分查找binarySearch,找到就返回位置,否则返回负数
        //先排序,再二分
        Arrays.sort(arr);
        System.out.println(Arrays.binarySearch(arr, 1));
        //6. 填充Arrays.fill,从0到arr.length,包头不包尾,填充value=1
        Arrays.fill(arr, 0, arr.length, 1);
        //7. 二维数组,二维数组也是对象
        int[][] a = new int[3][];
        a[0] = new int[1];
        a[1] = new int[2];
        a[2] = new int[3];
        //8。 Object[][]存表格数据。由于Object是所有类的祖宗。
        Object[][] teachers = new Object[2][];
        teachers[0] = new Object[]{"111", "李老师", "数学"};
        teachers[1] = new Object[]{"222", "王老师", "语文"};
        System.out.println(teachers[0][0]);
        Arrays.toString(teachers[0]);
        Student[] sts = new Student[2];
        sts[0] = new Student("111", "李老师", "数学");
        sts[1] = new Student("222", "王老师", "语文");
    }

    public static class Student implements Comparable {
        String id;
        String name;
        String course;

        public Student(String id, String name, String course) {
            this.id = id;
            this.name = name;
            this.course = course;
        }

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getCourse() {
            return course;
        }

        public void setCourse(String course) {
            this.course = course;
        }

        @Override
        public String toString() {
            return "Student{" +
                    "id='" + id + ''' +
                    ", name='" + name + ''' +
                    ", course='" + course + ''' +
                    '}';
        }

        @Override
        public int compareTo(Object o) {
            Student s = (Student) o;
            return s.id.compareTo(id) == 1 ? -1 : 1;
        }
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458689.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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