0
点赞
收藏
分享

微信扫一扫

Jenkins+Docker+gitee 持续部署spring boot 应用教程

爱薇Ivy趣闻 2023-05-01 阅读 62

我的个人博客主页:如果'\'真能转义1️⃣说1️⃣的博客主页
关于Java基本语法学习---->可以参考我的这篇博客:(我在Vscode学Java)


我在VScode学Java(Java一维数组)

Java 一维数组

声明数组:先声明,后使用

动态分配内存

创建数组:分配数据存储的物理空间是在堆上

处理数组内容

For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组。

越界访问数组 --->警告

二分查找:

左闭右闭区间的:

左闭右开区间的:

排序:

询问cursor

自带方法:

一些术语:

根据学习和书籍上的内容总结一下:


Java 一维数组

int[] intArray = new int[5];
System.out.println(intArray[0]); // 输出0
double[] doubleArray = new double[5];
System.out.println(doubleArray[0]); // 输出0.0
char[] charArray = new char[5];
System.out.println(charArray[0]); // 输出空字符
boolean[] boolArray = new boolean[5];
System.out.println(boolArray[0]); // 输出false
String[] strArray = new String[5];
System.out.println(strArray[0]); // 输出null


声明数组:先声明,后使用

在Java语言中,采用 ( 数据类型  [ ] 数组名 ) 的形式,而( 数据类型  数组名 [ ] )是保留了C/C++的形式。如今越来越多的语言的风格都采用了第一种的形式了。

//elementType[ ] arrayRefVar;(元素类型[ ] 数组引用变量;)
double [] douarray;
int inarr[];

动态分配内存

Java还提供了其他的方法,例如ArrayListLinkedList。这些类允许您在运行时添加和删除元素,而无需手动管理内存分配。

//java.util.Scanner类从用户读取输入。Scanner类允许您从标准输入读取用户输入。
import java.util.ArrayList;

public class MyClass {
    public static void main(String[] args) {
        ArrayList<Integer> intList = new ArrayList<Integer>();
        intList.add(1);
        intList.add(2);
        intList.add(3);
        System.out.println(intList); // 输出 [1, 2, 3]
    }
}

创建数组:分配数据存储的物理空间是在堆上

数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 ~ array.length-1。

 Java语言是通过使用new操作符来创建数组

arrayRefVar = new dataType[arraySize];
 // 定义数组
   double[] myList = new double[10];  //size=10   

//或者不直接给定
   int n = sc.nextInt();
   int[] intArray = new int[n];

处理数组内容

一般使用基本的三大循环或者 For-Each 循环。

For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组。

int[] intArray = {1, 2, 3, 4, 5};

// 使用for-each循环输出数组元素
for (int i : intArray) {
    System.out.println(i);
}

不要在进行数组初始化时,既指定数组的长度,也为每个数组元素分配初始值,这样会造成代码错误。

越界访问数组 --->警告

警告 越界访问数组是经常会出现的程序设计错误,它会抛出一个运行错误ArrayIndexOut0fBoundsException。为了避免错误的发生,在使用时应确保所使用的下标不超过arrayRefVar.length-1。

主要原因:是在循环中该使用<的地方误用<=时会犯的错误。

二分查找:

左闭右闭区间的:

public class BinarySearch {
    public static int binarySearch(int[] arr, int target) {
        int left = 0;
        int right = arr.length - 1;

        while (left <= right) {
            int mid = left + (right - left) / 2;

            if (arr[mid] == target) {
                return mid;
            } else if (arr[mid] < target) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }

        return -1;
    }

左闭右开区间的:

public class BinarySearch {
    public static int binarySearch(int[] arr, int target) {
        int left = 0;
        int right = arr.length;

        while (left < right) {
            int mid = left + (right - left) / 2;

            if (arr[mid] == target) {
                return mid;
            } else if (arr[mid] < target) {
                left = mid + 1;
            } else {
                right = mid;
            }
        }

        return -1;
    }

排序:

询问cursor

自带方法:

(1)Arrays.sort():该方法使用快速排序算法对数组进行排序。时间复杂度为O(nlogn)。

int[] arr = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));

(2)Collections.sort():该方法使用归并排序算法对列表进行排序。时间复杂度为O(nlogn)

List<Integer> list = new ArrayList<>(Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5));
Collections.sort(list);
System.out.println(list);

一些术语:

anonymous array (匿名数组)

array initializer(数组初始化语法)

binary search (二分查找)

index (下标)

indexed variable(下标变量)

insertion sort (插入排序)

linear search(线性查找)

selection sort (选择排序)

根据学习和书籍上的内容总结一下:

  • 声明数组变量并不会给数组分配任何空间。数组变量不是基本数据类型变量。数组变量包含的是对数组的引用。当创建一个数组时,若它的元素是基本数据类型的数值,那么该数组的初始值的默认值和改数据类型是一致的。
  • 只有创建数组后才能给数组元素赋值。可以使用new操作符创建数组,语法如下:newelementType[array.Size] (数据类型[数组大小])。
  • 数组中的每个元素都是使用语法arravRefVarlindex1 (数组引用变量[下标])表示的。下标必须是一个整数或一个整数表达式。
  • 创建数组之后,它的大小就不能改变,使用array.length就可以得到数组的大小。由于数组的下标总是从0开始,所以,最后一个下标总是array.length-1。如果试图引用数组界外的元素,就会发生越界错误。千万不要用下标1访问数组的第一个元素,其实际上对于该元素的下标应该是0。这个错误称为下标过1错误(index off-by-one error)。
  • Java有一个称为数组初始化语法 (array initializer)的表达式,它将数组的声明、创建和初始化合并为一条语句,其语法为:
    元素类型[] 数组引用变量={value0,value1,.·,valuek}
  • 将数组参数传递给方法时,实际上传递的是数组的引用,更准确地说,被调用的方法可以修改调用者的原始数组的元素。
举报

相关推荐

0 条评论