数组学习笔记

  数组的定义:

数组是相同类型数据有序集合

特点:长度确定,元素类型相同,数组类型任意。

数组是对象,存放于中。每个元素相当于该对象的成员变量

  数组声明:

格式:数据类型 [ ]   数组名称;

          数组名称 = new 数据类型 [ 数组长度 ] ;

也可合并为:数据类型 [ ]   数组名称 = new 数据类型 [ 数组长度 ] ;

创建引用类型数组时,要先定义相关的构造方法,并写明getters,setters。

  初始化:

1. 静态初始化

格式:数据类型 [ ] 数组名称 = {内容1,内容2,内容3,...}

           引用类型 [ ] 数组名称 = {new 数组名称(内容1),new 数组名称(内容1),...}

2. 动态初始化数组

数组定义与为数组元素分配空间并赋值的操作分开进行。

格式:数据类型 [ ]  数组名称 = new 数据类型 [ 数组长度 ] ;

           数组名称 [0] = 内容1;

           数组名称 [1] = 内容2;

3.数组的默认初始化

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。int:0,String:null,boolean:false。

  for-each循环:

专门用于读取数组或集合中所有的元素。

格式:for (数据类型 随意变量:数组名称) { 

         System.out.println(随意变量);

}

 数组的拷贝(扩容,删除):

利用arraycopy方法。

格式:static void arraycopy(原数组,开始元素下标,目标数组, 目标开始元素下标,复制长度)

删除的思想是拷贝到自身数组,覆盖原数据。

扩容的基本思想是先建一个更大的数组,再把原数组的内容拷贝进去。

  java.util.Arrays类:

1.打印数组元素:Arrays.toString(数组名)

2.对数组进行排序:Arrays.sort(数组名)

3.对有序数组用二分法查找指定元素的索引:Arrays.binarySearch(数组名, 需要查找的内容)

  多维数组:

多维数组可以看成以数组为元素的数组。每个数组元素的元素数可以不同。

1.静态初始化:数组类型[ ] [ ] 数组名称 = {{1,2,3 },{ 3,4},{ 4,5,6,7}};(举例)

2.动态初始化:数组类型[ ] [ ] 数组名称 = new 数组类型 [3] [ ](举例)

                        数组名称[0] = {1,2,3};

                        数组名称[0] = {3,4};

                        数组名称[0] = {4,5,6,7};

  数组存储表格数据:

Object [ ] 子数组名1 = {  };

Object [ ] 子数组名2 = {  };

Object [ ] 子数组名3 = {  };

Object [ ] [ ] 数组名称 = new Object [3][ ];

数组名称 [0] = 子数组名1;

数组名称 [1] = 子数组名1;

数组名称 [2] = 子数组名1;

打印方法一:System.out.println(Arrays.deepToString(数组名称));

打印方法二:for (Object [ ] 任意变量:数组名称) { 

                    System.out.println(Arrays.toString(任意变量));
                      }

  冒泡排序:

1.基础算法

2.改进算法

基本思路:若某次小循环时发现数组已经排序完成(即不再交换数据),则跳出循环

  二分法查找:

 注意:进行二分查找前必须先对数组元素进行排序(Arrays.sort)。

基本思想:将给定值key与数组中间位置上元素的关键码(key)比较,如果相等,则检索成功;

                  若key较小,则在数组前半部分中继续进行二分法检索;

                  若key较大,则在数组后半部分中继续进行二分法检索。

 

posted @ 2020-03-20 11:26  菅兮徽音  阅读(126)  评论(0)    收藏  举报