Java深入浅出数组的定义与使用上篇

目录
  • 一、数组的基本用法
    • 1.什么是数组
    • 2.定义数组 
    • 3.数组的使用
    • 打印数组: 
  • 二、数组作为方法的参数
    • 基本用法
  • 三、数组练习题
    • 1.交换两个变量的值
    • 2.写一个方法,将数组中的每个元素都*2 
    • 3.模拟实现tostring函数
    • 4.找数组中的最大元素 
    • 5.查找数组中指定元素(顺序查找) 
    • 6.查找数组中指定元素(二分查找) 
  •  总结:

一、数组的基本用法

1.什么是数组

数组:存储一组相同数据类型的数据的集合。

2.定义数组 

int[] :int类型数组 

double[] :double类型数组

通过类型就可以定义变量,比如:

int[] array,array就是这个类型的变量,这个变量是存储一组相同数据的变量。

三种数组定义的方式:

第一种:

int[] array = {1,2,3,4,5,6};定义一个数组且初始化 

虽然没写new,但实际上也是一个对象

注意事项:

int[10] array =  {1,2,3,4,5,6};写法错误,int[] 属于类型,中括号里面不能加任何的数字,相当于在这里破坏了它的类型。

第二种:

int[] array2 = new int[3];

 定义数组未初始化

第三种:

int[] array3 = new int[]{1,2,3,4,5,6};

定义且初始化 

三种当中用的最多的就是第一种

3.数组的使用

获取数组长度:

Java里面可以直接通过数组名array.length 求出当前数组的长度

访问数组元素:

访问数组下标为4的元素 

越界访问数组元素:

 Java语言越界直接报错

更改数组元素:

 通过数组名中括号的方式,不仅仅可以访问下标的内容,也可以往下标里面写一些数据 

打印数组: 

第一种:(for循环)

 第二种:(增强for循环,for each循环)

for循环和for each循环的区别:

for循环是可以拿到下标的,

for each循环是拿不到下标的,更多的是用于集合中

第三种:借助Java的操作数组工具类 Arrays

二、数组作为方法的参数

基本用法

JVM简单介绍

 局部变量在内存中的储存:

引用不指向对象写法:

这个引用不指向任何的对象

一个引用能不能同时指向多个对象吗? 

对于这个代码来说只能指向一个对象,存一个对象的地址。最终只保存了最后一个对象的地址 

数组作为方法的参数传递的过程:

求解打印结果:

前两种求解:

fun2打印结果:

分析例子:下图代表什么 

代表array2这个引用,指向了array1这个引用指向的对象。

下图就代表了上面例子的意思:

注意事项:

引用指向引用这句话 是错误的,引用只能指向对象

引用一定在栈上吗?

不一定,一个变量在不在栈上,是你变量的性质决定的,如果你就是一个局部变量,一定是在栈上的。如果不是,例如,实例成员变量那就不一定就是在栈上的。

三、数组练习题

1.交换两个变量的值

public class TestDemo {
    public static void swap(int[] array){
        int tmp = array[0];
        array[0] = array[1];
        array[1] = tmp;

    }
    public static void main(String[] args) {
        int[] array = {10,20};
        System.out.println("交换前: "+array[0]+" "+array[1]);
        swap(array);
        System.out.println("交换后: "+array[0]+" "+array[1]);
    }

打印结果:

2.写一个方法, 将数组中的每个元素都 * 2 

 /**
     * 在原来的数组上扩大2倍
     * @param array
     */
    public static void enlarge(int[] array){
        for (int i = 0; i <array.length ; i++) {
            array[i] = array[i]*2;
        }

    }

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7};
        enlarge(array);
        System.out.println(Arrays.toString(array));
    }

打印结果:

把原来数组扩大2倍的值放在一个新的数组中

/**
     * 把原来数组扩大2倍的值放在一个新的数组中
     * @param array
     * @return
     */
    public static int[] func(int[] array) {
        int[] ret = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            ret[i] = array[i] * 2;
        }
        return ret;
    }

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7};
       int[] ret =  func(array);
        System.out.println(Arrays.toString(ret));
    }

3.模拟实现tostring函数

public static String myToString(int[] array){
        String str = "[";

        for (int i = 0; i <array.length ; i++) {
            str = str+array[i];
            if(i != array.length-1){
                str+= ",";
            }
        }
        str= str + "]";
        return str;
    }

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6,7};
       String str =  myToString(array);
        System.out.println(str);
    }

打印结果:

4.找数组中的最大元素 

    public static int maxNum(int[] array){
        if(array == null) return -1;
        if (array.length == 0) return -1;
        int max = array[0];
        for (int i = 1; i <array.length ; i++) {
            if(max < array[i]){
                max = array[i];

            }
        }
        return max;
    }

    public static void main(String[] args) {
        int[] array = {12,8,14,26,5,7,8};
        int max = maxNum(array);
        System.out.println(max);
    }

打印结果:

5.查找数组中指定元素(顺序查找) 

   public static int findNum(int[] array,int key){
        for (int i = 0; i <array.length ; i++) {
            if(array[i] == key){
                return i;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        int[] array = {2,4,5,6,11,7,8,9};
        System.out.println(findNum(array, 7));

    }

打印结果:

6.查找数组中指定元素(二分查找) 

二分查找的必要条件是必须有序的数列
    public static int binarySearch(int[] array,int key){
        int left = 0;
        int right = array.length-1;
        while(left <= right){
            int mid = (left+right)/2;
            if(array[mid] > key){
                right = mid - 1;
            }else if(array[mid] < key){
                left = left + 1;
            }else{
                return mid;
            }

        }
        return -1;
    }

    public static void main(String[] args) {
        int[] array = {12,14,15,16,18,23};
        System.out.println(binarySearch(array, 15));
    }

打印结果:

 总结:

本文简单介绍了什么是数组、数组的写法、如何打印数组、数组的简单使用。通过简单例题的方式加深对数组的理解。上述就是今天的内容,文章哪里出现了问题我都会积极改正,也希望大家能更快的掌握自己想要的知识,让我们一起加油!!!!!

到此这篇关于Java深入浅出数组的定义与使用上篇的文章就介绍到这了,更多相关Java 数组内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java中数组的定义与使用

    目录 一.数组的基本用法 1.什么是数组 2.创建数组 3.数组的使用 二.数据作为方法参数 1.基本用法 2.理解引用类型 3.认识null 4.JVM内存区域划分 5.数组作为方法的返回值 6.关于数组的地址 四.数组练习 1.数组转字符串 2.数组拷贝 五.二维数组 1.二维数组的语法 2.二维数组的结构 3.用for-each遍历二维数组 总结 一.数组的基本用法 1.什么是数组 数组本质上就是让我们能 "批量" 创建相同类型的变量. 如果我们需要创建多个同一个类型的变量,则不

  • Java中数组的定义与使用详解

    目录 数组的基本概念 数组引用传递 数组静态初始化 二维数组 总结 数组的基本概念 如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, i2, i3, ... i100; 但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次. 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变

  • Java基础教程之数组的定义与使用

    目录 一.数组的基本概念 二.数组的声明 三.数组的创建及初始化 1.数组的创建 2.数组的初始化 四.访问数组元素 五.for each 循环 六.数组的拷贝 七.数组排序 八.二维数组 总结 一.数组的基本概念 数组是一种数据类型,用来存储同一类型值的集合,它在内存中是一段连续的空间.通过一个整形下标(index,或者称之为索引)可以访问数组中的每一个值.例如,如果a是一个整型数组,a[i]就是一个下标为i的一个整数,数组是一种引用类型. 二.数组的声明 声明数组变量时,需要指出数组类型(数

  • Java中数组的定义和使用教程(三)

    数组排序 在很多的面试题上都会出现数组排序的操作形式.但是这个时候你千万别写上:java.util.Arrays.sort(数组).而这种排序都是以升序为主. 基础的排序操作: 范例: 冒泡排序 public class ArrayDemo { public static void main(String args[]) { int data[] = new int[] {9, 3, 1, 5, 4, 2, 7, 8, 6, 0}; sort(data); printArray(data); }

  • Java动态数组Arraylist存放自定义数据类型方式

    目录 Java动态数组Arraylist存放自定义数据类型 自定义一个动态数组ArrayList,加深对动态数组的理解 Java动态数组Arraylist存放自定义数据类型 class Point { int x; int y; public Point(int x,int y) { this.x=x; this.y=y; } } public class Test { public static void main(String[] args) { // TODO Auto-generated

  • Java中数组的定义和使用教程(二)

    数组与方法调用 数组是一个引用数据类型,那么所有的引用数据类型都可以为其设置多个栈内存指向.所以在进行数组操作的时候,也可以将其通过方法进行处理. 范例: 方法接受数组 public class ArrayDemo { public static void main(String args[]) { int data[] = new int[] {1, 2, 3}; printArray(data); } //定义一个专门进行数组输出的方法 public static void printArr

  • Java如何自定义类数组的创建和初始化

    目录 自定义类数组的创建和初始化 自定义类封装数组,添加类方法实现数据 自定义类数组的创建和初始化 刚刚在慕课学习Java的集合类List过程中,向集合中添加元素时,遇到一个问题: 定义了一个Course类 public class Course { private String id; private String name; //课程名称 //get set方法 public String getId() { return id; } public void setId(String id)

  • Java中数组的定义和使用教程(一)

    数组的基本概念 如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下: int i1, i2, i3, ... i100; 但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次. 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作.数组本身属于引用数据类型,那么既然是引

  • Java深入浅出数组的定义与使用上篇

    目录 一.数组的基本用法 1.什么是数组 2.定义数组  3.数组的使用 打印数组:  二.数组作为方法的参数 基本用法 三.数组练习题 1.交换两个变量的值 2.写一个方法,将数组中的每个元素都*2  3.模拟实现tostring函数 4.找数组中的最大元素  5.查找数组中指定元素(顺序查找)  6.查找数组中指定元素(二分查找)   总结: 一.数组的基本用法 1.什么是数组 数组:存储一组相同数据类型的数据的集合. 2.定义数组  int[] :int类型数组  double[] :do

  • Java深入浅出数组的定义与使用下篇

    接着上一篇继续,老铁们 1.检查数组的有序性 给定一个整型数组, 判断是否该数组是有序的(升序) public static boolean isUp(int[] array){ for (int i = 0; i <array.length-1 ; i++) { if(array[i]>array[i+1]){ return false; } } return true; } public static void main(String[] args) { int[] array = {12

  • java中数组的定义及使用方法(推荐)

    数组:是一组相关变量的集合 数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组.二维数组.多维数组 数据的有点 不使用数组定义100个整形变量:int i1;int i2;int i3 使用数组定义 int i[100]; 数组定义:int i[100];只是一个伪代码,只是表示含义的 一维数组 一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的, 使用java数组,必须经过两个步骤,声明数组和分配内存给该数组, 声明形式一 声明一维数组:数据类型

  • Java关于数组的介绍与使用

    目录 一.前言 二.数组的定义 数组定义的形式: 格式1: 格式2: 三.数组的初始化方式: 1.动态初始化 动态开辟的示意图: 2.静态初始化 四.索引访问数组 五.数组长度表示 六.遍历数组 方法一: 实例演示: 代码: 方法二: 实例演示: 代码: 七.数组的初始值 实例演示: 代码: 一.前言 前面我们学习了随机数的介绍和使用,那么这篇我们来学习java中数组的定义和使用, java的数组和c语言的十分类似. 二.数组的定义 数组定义的形式: 格式1: 数据类型 [ ] 数组名 :如in

  • Java二维数组简单定义与使用方法示例

    本文实例讲述了Java二维数组简单定义与使用方法.分享给大家供大家参考,具体如下: Java的二维数组是先创建一个一维数组,然后该数组的元素再引用另外一个一维数组.在使用二维数组的时候,通过两个中括号[]来访问每一层维度的引用,直到访问到最终的数据. public class MultiDimArray{ /** * @param args */ public static void main(String[] args) { int[][] arr = new int[3][]; arr[0]

随机推荐