java基础总结——数组

数组需要掌握的:

  1、数组的定义
  2、数组的内存分配及特点
  3、数组操作常见问题
  4、数组常见操作
  5、数组中的数组(理解)

数组唯一属性:length,即数组的长度。

1.数组定义

  格式一:

    元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
     示例:int[] arr = new int[5];
  格式二:

    元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
       示例:int[] arr = new int[]{3,5,1,7};
           int[] arr = {3,5,1,7};

区别:方式一定义了数组的长度,但是没有给数组赋值,数组有默认值,和数据类型默认值一样;

   方式二定义数组,并赋值,默认指定数组的长度。推荐使用方式二

  

2.数组的内存分配及特点

3、数组常见操作

3.1数组遍历

  将数组中的每个数据分别取出,for循环来完成 数组.length数组的长度,也就是存储数据的个数,数组中的最大角标值 = 数组.length - 1

 1 /*
 2   遍历数组,已经用for循环解决掉了
 3   数组越来越多
 4   如何去遍历呢
 5   采用函数的方式,将遍历数组的功能,定义在函数中
 6   直接调用函数的遍历功能就可以了
 7 */
 8 class ArrayDemo5{
 9     /*
10      分析步骤:
11       这个函数就负责遍历数组,并打印在命令行上
12       1. 有没有运算结果,没,void
13       2. 有没有未知数参与函数运算,就那数组
14     */
15
16     /*
17     printArray函数,就负责遍历数组,打印数组
18     调用这个函数的时候,传递函数进来
19     */
20     public static void printArray(int[] arr)
21     {
22         for(int x = 0; x<arr.length ;x++){
23             if(x!=arr.length-1){
24                 System.out.print(arr[x]+",");
25             }
26             else{
27              System.out.print(arr[x]);
28             }
29
30         }
31         System.out.println();
32     }
33     public static void main(String[] args)
34     {
35         int[] arr ={34,435,324,324,3246,63,3};
36         int[] arr1 ={34,435,324,324,3246,63,3,5};
37         printArray(arr);
38     //    printArray(arr1);
39     }
40 }

3.2数组求最值

  遍历数组,对每一个数组中的元素进行比较,并且记录 较大数据的下标 必须定义函数完成

 1 /*
 2   数组中获取最值的操作
 3   最大值,最小值
 4 */
 5 class  ArrayDemo6{
 6     public static void main(String[] args) {
 7         int[] arr = {4,3,2,6,1,0};
 8         int max = getMax(arr);
 9
10         System.out.println("max="+max);
11     }
12     /*
13      定义函数,来获取数组中的最大值
14      1 明确函数计算后的结果是什么,int
15      2 未知数据就是数组
16     */
17
18     public static int getMax(int[] arr){
19         //定义变量,记录数组中0下标上的数据
20         int max = 0;//4
21         //遍历数组,分别进行比较,保留最大值
22         for(int x = 0 ; x<arr.length;x++){
23             if(arr[max]<arr[x]){
24                max = x;
25             }
26         }
27         return arr[max];
28     }
29
30     public static int getMin(int[] arr){
31         int min = 0;//4
32         //遍历数组,分别进行比较,保留最大值
33         for(int x = 0 ; x<arr.length;x++){
34             if(arr[min]>arr[x])
35             {
36                min = x;
37             }
38         }
39         return arr[min];
40     }
41 }

3.3数组排序

1、选择排序

? 利用原理是:从第0个下标开始进行比较和较大的数进行换位(借用第三方变量)第一次比较完后,从第1个小标开始进行比较和较大的数进行换位(借用第三方变量)

? 特点:第一次都比较完后,最小的数出现在了0下标位置上嵌套的for来完成

2、冒泡排序

相邻两个数据进行比较,根据结果换位

两种排序示意图

3、代码实例

 1         /*
 2          选择排序的三个步骤
 3          1. 遍历数组,把数组中每个元素分别取出
 4          2. 出去后,进行大小的比较
 5          3. 进行数组的换位置
 6         */
 7         //选择排序
 8         for (int x = 0; x < arr.length - 1; x++) {
 9             for (int y = x + 1; y < arr.length; y++) {
10                 // x=1 y=1+1=2
11                 if (arr[x] > arr[y])// arr[1]>arr[2]
12                 {
13                     int temp = arr[x];
14                     arr[x] = arr[y];
15                     arr[y] = temp;
16                 }
17             }
18         }
19
20         /*
21          定义函数实现冒泡排序
22          1. 确定函数运算后没有返回值
23          2. 不确定的数据就是数组
24
25          说明:
26            内圈循环,-x是为了比较的次数一次一次在减少
27                       -1是为了防止数组越界异常
28           希尔排序,公认的效率最高的排序方式
29           插入形式的排序算法
30         */
31         //冒泡排序
32         for(int x =0 ;x<arr.length; x++){
33            for(int y = 0 ; y <arr.length-x-1;y++){
34               if(arr[y]>arr[y+1]){
35                  int temp = arr[y];
36                  arr[y] = arr[y+1];
37                  arr[y+1] = temp;
38               }
39            }
40         }

4、数组操作常见问题

ArrayIndexOutOfBoundsException 数组下标越界异常
NullPointerException 空指针异常,引用类型中最常见

时间: 2024-10-12 12:16:13

java基础总结——数组的相关文章

Java基础学习——数组初识(1)

Java基础学习--数组初识(1) 1什么是数组 Java中常见的一种数据结构就是数组,数组可以分为一维数组.二维数组和多维数组. 数组是由一组相同的变量组成的数据类型,数组中每个元素具有相同的数据类型,数组中的每个元素都可以用一个统一的数组名和下标来确定. 2 数组的使用 数组的一般使用步骤: 声明数组 分配内存给该数组 下面是一维数组为例: 数据类型  数组名 []: 数组名 = new 数据类型 [数据个数]: 2.1一维数组的声明与赋值 1.数组的声明 int  num [];    

Java基础:数组

转载请注明出处:jiq?钦's technical Blog 一.数组初始化 无论如何,当你要实例化一个数组对象的时候,必须要指定其大小. 不能在提供了initializer的情况下再去指定数组的维度!!! 正确的初始化方式有: 方式1:Int[][] array =new int[][]{{1,2},{3,4},{5},{2,4,2,1}}; 方式2:Int[][] array ={{1,2},{3,4},{5},{2,4,2,1}}; 方式3: Int[][] array =new int[

java 基础概念 -- 数组与内存控制

问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. 问题2: Java数组的初始化方式 有哪几种? 两种:动态初始化 和 静态初始化.动态初始化 指的是 仅仅指定数组的长度,不指明每个数组的元素.  静态初始化 指的是 详细指定数组的每个元素. 问题3: Java 的基本类型数组 和 应用类型数组 之间,在初始化时的内存分配机制有什么差别? Jav

Java基础总结--数组

---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容器2.数组可以开始从0自动编号--进而可以通过下标方便的访问每个数据3.数组本质就是对象,数组名就是存储该数组对象的地址,数组的元素相当于对象的成员变量--会被进行默认初始化4.数组声明和初始化格式--*直接声明并初始化(静态初始化方式) int[] arr = {1,2,3};*先创建再初始化 i

Java基础之数组(六)

数组变量属引用类型,数组可以看成是对象,数组中的每个元素相当于该对象的成员变量. 数组中的元素可以是任何数据类型,包括基本类型和引用类型. Java语言中声明数组时不能指定其长度(数组中元素的个数),声明数组时,仅创建一个引用变量,该变量存在栈中,并没有在堆中分配内存,此时引用变量的值为null. 数组对象的创建,new 数组元素的类型[数组元素的个数],创建数组对象时,才在堆中分配内存,因此也可以指定数组元素的个数,同时将对象的堆内存地址赋值给数组引用变量.创建时,没有初始化数组元素,此时为默

java基础之数组常用操作

常用的对数组进行的操作 1.求数组中最大值,最小值 思路:假设下标为0的元素是最大值,遍历数组,依次跟max进行比较,如果有元素比这个max还大,则把这个值赋给max.最小值同样 1 public class TestArray{ 2 public static void main(String[] args){ 3 int[] arr={23,45,234,576,34,87,34,12,67}; 4 int max=arr[0]; 5 int min=arr[0]; 6 for(int i=

Java 基础:数组

一.数组声明: int[] x; int x[]; 在Java中一般使用前者,机把int[]看做一个类型,C++中只能后者 二.数组初始化: 直接提供值: int[] x = {1, 3, 4}; int[][] y = { {1, 2, 3}, {4, 5} }; 各个维度的长度信息直接根据提供的值得出.这种使用大括号包裹的值序列作为数组看待,仅仅在数组初始化时才成立,其他情况均认为语法错误. 赋值初始化: 1.默认数组对象: int[] x = new int[5]; Integer[] y

java基础语法 数组

数组是相同数据类型元素的集合   数组本身是引用数据类型,即对象.但是数组可以存储基本数据类型,也可以存储引用数据类型. 在java中如果想要保存一组基本类型的数据,使用数组:如果想保存一组对象或者其他类型的复杂数据可以使用集合. 数组的举例 int [] a = new int []{1,2,3,4,5}; String [] s = new String []{"小熊","小小熊","小小小熊"}; Employee [] e=new Emp

java基础之数组

1.数组的定义 数组是相同数据类型的有序集合,数组是一种特殊类型的变量,是在内存中开辟的一片连续的存储空间 数组的元素:数组中的保存的具体的值 数组的长度:数组中能保存的最大得元素的个数. 数组的下标:数组是通过下标标识元素在数组中的位置的,下标从0开始,到数组长度-1 注意:数组中元素的类型必须与数组声明时的数据类型一致. 2.数组的声明.初始化.赋值 数组声明时,计算机未分配内存空间.例:int[] nums;或者int nums[];两张声明方式都可以 nums=new int[5];这个

黑马程序员-Java基础之数组

数组 数组是具有相同数据类型的一组数据的集合.例如,球类的集合——足球.篮球.羽毛球等:电器集合——电视机.洗衣机.电风扇等.在程序设计中,可以将这些集合称为数组.数组中的每个元素具有相同的数据类型.在Java中同样将数组看作是一个对象,虽然基本数据类型不是对象,但是由基本数据类型组成的数组则是对象.在程序设计中引入数组可以更有效地管理和处理数据.可根据数组的维数将数组分为一维数组.二维数组…… 一维数组: 1.数组的建立: 数组作为对象允许使用new关键字进行内存分配.在使用数组之前,必须首先