首页 > 编程语言 >【Java】从头开始的Java复健day7

【Java】从头开始的Java复健day7

时间:2023-08-15 18:45:17浏览次数:64  
标签:复健 arr Java int day7 Arrays 数组 new

用的书:《Java从入门到精通》

day1(3.1-3.3): 【Java】从头开始的Java复健day1

day2(3.4-3.8): 【Java】从头开始的Java复健day2

day3(4.1-4.4): 【Java】从头开始的Java复健day3

day4(4.5-5.2): 【Java】从头开始的Java复健day4

day5(5.3-5.4): 【Java】从头开始的Java复健day5

day6(5.5-5.9): 【Java】从头开始的Java复健day6

第六章 数组

6.1 数组概述

数组是具有相同数据类型的一组数据的集合

6.2 一维数组的创建及使用

实质上就是一组相同类型数据的线性集合

创建一维数组

数组下标从0开始

  • 先声明 再用new运算符进行内存分配

    • 数组元素类型 数组名字[]

    • 数组元素类型[] 数组名字

    声明后不能立即访问 还需要分配内存空间 并且必须指明长度

    数组名 = new 数组元素类型[数组元素的个数]

  • 声明的同时为数组分配内存

    • 数组元素类型 数组名字[] = new 数组元素类型[数组元素的个数]

    • 数组元素类型[] 数组名字 = new 数组元素类型[数组元素的个数]

初始化一维数组

  • 为数组分配内存也算一种初始化 现在所有元素默认为0

  • 在new中初始化 eg int arr[] = new int[]{1, 2, 3, 4};

  • 省略new 直接初始化 eg int arr[] = {1, 2, 3, 4};

数组长度一旦定义无法改变

使用一维数组

for循环遍历

public class Java6_1_2 {
    public static void main(String[] args) {
        //创建一维数组
        //先声明 再用new运算符进行内存分配
        int arr[];
        int[] arr1;
        arr = new int[3];
        arr1 = new int[4];
        // 声明的同时为数组分配内存
        int arr2[] = new int[5];

        // 初始化一维数组
        int[] arr3 = new int[6];
        System.out.println(arr3[0]);
        int arr4[] = {1, 2, 3, 4};

        // 使用一维数组
        for (int i = 0; i<arr4.length; i++){
            System.out.println(arr4[i]);
        }
        for (int i : arr4){
            System.out.println(i);
        }
    }
}

6.3 二维数组的创建及使用

二维数组的创建

  • 先声明 再用new运算符进行内存分配

    • 数组元素类型 数组名字[][]

    • 数组元素类型[][] 数组名字

      对于高维数组 分配内存空间

      • 直接为每一维分配内存 eg a = new int[2][4]

      • 分别为每一维分配内存 eg a = new int[2][] a[0] = new int[2] a[1] = new int[3]

  • 声明的同时为数组分配内存

二维数组初始化

eg int arr[][] = {{1, 2, 3}, {4, 5, 6}}

使用二维数组

public class Java6_3 {
    public static void main(String[] args) {
        int arr[][] = {{1, 2, 3}, {4, 5}};
        for (int i=0; i<arr.length; i++){
            for (int j=0; j<arr[i].length; j++){
                System.out.println(arr[i][j]);
            }
        }
        for (int[] i : arr){
            for (int j : i){
                System.out.println(j);
            }
        }
    }
}

6.4 数组的基本操作

要用到Arrays类

import java.util.Arrays;

遍历数组

前两节谢过了两种方法

  • for
  • foreach

填充替换数组元素

  • Arrays.fill(int[] a, int value)

    • a 要进行元素替换的数组

    • value 要存储进数组的值

  • Arrays.fill(int[] a, int fromIndex, int toIndex, int value)

    • a 要进行元素替换的数组

    • fromIndex 要使用指定值填充的第一个元素的索引(包括)

    • toIndex 要使用指定值填充的最后一个元素的索引(不包括)

    • value 要存储进数组的值

对数组进行排序

Arrays.sort() 升序排序

若是String类型则是按照字典顺序升序

复制数组

  • Arrays.copyOf(arr, int newLength)

  • Arrays.copyOfRange(arr, int formIndex, int toIndex)

数组查询

Arrays.binarySearch用二分法搜索

使用之前必须进行排序

  • Arrays.binarySearch(Object[] a, Object key)

    • a 要搜索的数组
    • key 要搜索的值
    • 返回索引
  • Arrays.binarySearch(Object[] a, int formIndex, int toIndex, Object key)

import java.util.Arrays;
public class Java6_4 {
    public static void main(String[] args) {
        // 填充替换数组元素
        int arr[] = {1, 2, 3, 4, 5};
        Arrays.fill(arr, 5);
        for (int i : arr) {
            System.out.print(i);
        }
        System.out.println("");
        Arrays.fill(arr, 2, 3, 1);
        for (int i : arr) {
            System.out.print(i);
        }
        System.out.println("");

        // 对数组进行排序
        Arrays.sort(arr);
        for (int i : arr) {
            System.out.print(i);
        }
        System.out.println("");

        // 复制数组
        int newArr[] = Arrays.copyOf(arr, 10);
        for (int i : newArr) {
            System.out.print(i);
        }
        System.out.println("");

        int newArr1[] = Arrays.copyOfRange(arr, 0, 3);
        for (int i : newArr1) {
            System.out.print(i);
        }
        System.out.println("");

        // 数组搜索
        System.out.println("1的索引为" + Arrays.binarySearch(arr, 1));
        // 结果是2 因为会返回第一找到的key的索引 binarySearch是二分法 故第一个找的位置是正中间
        System.out.println("1的索引为" + Arrays.binarySearch(arr, 5));
    }
}

标签:复健,arr,Java,int,day7,Arrays,数组,new
From: https://www.cnblogs.com/ryukirin/p/17632136.html

相关文章

  • 【校招VIP】java语言考点之ConcurrentHashMap1.7和1.8
    考点介绍:ConcurrentHashMap是JAVA校招面试的热门考点,主要集中在1.7和1.8的底层结构和相关的性能提高。理解这个考点要从map本身的并发问题出发,再到hashTable的低性能并发安全,引申到ConcurrentHashMap的分块处理。同时要理解读锁和写锁的区别一、考点题目1、ConcurrentHashMap与......
  • 《Java编程思想第四版》学习笔记13
    //:Frog.java//TestingfinalizewithinheritanceclassDoBaseFinalization{publicstaticbooleanflag=false;}classCharacteristic{Strings;Characteristic(Stringc){s=c;out.println("Creating......
  • JavaScript 如何封装一些常见的函数来提高工作效率
    前言为什么要封装函数JavaScript封装函数的主要目的是为了保护代码的安全性和可维护性。封装可以隐藏实现细节:将函数内部的实现细节封装起来,只暴露给外部必要的接口,可以使代码更加安全,防止意外修改或者滥用。封装可以提高代码的可维护性:将功能模块封装成函数,可以使代码更加模......
  • Java学习笔记(十)
    第7章 面向对象(下)7.1 静态的1、static:静态的2、什么是静态的?和对象无关的,不会因为对象的不同而不同,即所有对象都一样的。换句话说,和对象无关。动态的,根据对象的不同而不同,和对象有关,由对象动态决定。3、static这个关键字用在哪里?(1)成员变量前面:静态变量(2)成员方法前面:静态......
  • 怎样快速学好Java?
    怎样才能快速学好Java编程,快速接手项目开发?给大家分享6点学习经验: 1、书籍是最好的知识载体,也是进阶Java编程大神的必须工具,一定要看书 现在学习Java变得比以前容易多了,然而我要说的是,Java虽然变得越来越容易学,然而那只代表入门容易,并不代表这门编程技术就真的变简单了。如果仅仅......
  • Java并发编程:实现高效、线程安全的多线程应用
    Java并发编程是开发高效、可扩展的多线程应用的关键。合理地利用多线程可以提高程序的性能和响应性,但同时也会引入线程安全的问题。本文将介绍Java并发编程的关键技巧,帮助读者实现高效、线程安全的多线程应用。 线程安全的数据结构和类Java提供了许多线程安全的数据结构和类,如Co......
  • 编译greenDao的时候出现KaptExecution:java.lang.reflect.InvocationTargetException
    一、概述在编译greendao的时候出现了以下异常。Executionfailedfortask':common_base:kaptDebugKotlin'.>Afailureoccurredwhileexecutingorg.jetbrains.kotlin.gradle.internal.KaptExecution>java.lang.reflect.InvocationTargetException(noerrormes......
  • ChatGPT 问答00015 Java中如何判断字符串中含有3个以上日语字符
    要判断一个字符串中是否包含3个或更多日语字符,可以使用Java的正则表达式进行匹配,并配合计数器来统计匹配到的日语字符数量。以下是一个示例的Java代码:importjava.util.regex.*;publicclassMain{publicstaticvoidmain(String[]args){Stringstr="Hell......
  • javascript 高级编程系列 - 定型数组
    定型数组是一种用于处理数值类型数据的专用数组,最早是在webGL中使用的,WebGL是OpenGLES2.0的移植版,在web页面中通过<canvas>元素来呈现它。定型数组也被一同移植而来,其可为javascript提供快速的按位运算。在javascript中,数字是以64位浮点格式储存的,并按需转换为32位整数,所以算术......
  • javascript 高级编程系列 - 数组
    1.Array.of创建数组constitems=Array.of(1,2,3);console.log(items);2.Array.from将可迭代对象或类数组对象转换为数组constitems=Array.from('123');console.log(items);3.Array.prototype.find&Array.prototype.findeIndex在数组中查找符合条件的第一......