精华内容
下载资源
问答
  • 一、数组数组是多个相同类型数据的组合,实现对这些数据的统一管理。数组中的元素可以是任何数据类型,包括基本数据类型和...1、一维数组声明 一维数组的声明方式: type var[] 或 type[] var;例如: int a[]; int...

    一、数组

    1. 数组是多个相同类型数据的组合,实现对这些数据的统一管理。

    2. 数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。

    3. 数组属引用类型,数组型数据是对象(object),数组中的每个元素相当于该对象的成员变量。

    1、一维数组声明

      一维数组的声明方式:

        type  var[] 或 type[]  var;

        例如:

             int a[];

             int []a1;

             double b[];

             Mydate []c;  //对象数组

    • Java语言中声明数组时不能指定其长度(数组中元素的数), 

        例如:int a[5];    //非法

    2、创建基本数据类型数组 

    • Java中使用关键字new创建数组对象

    • 创建基本数据类型一维数组对象

           public class Test{

             public static voidmain(String args[]){ 

                int[] s;

                s = new int[10];

               for ( inti=0; i<10; i++ ) {

                         s[i] =2*i+1;

                    System.out.println(s[i]);

                   }

               }

        }

    3、数组元素的默认初始化

    • 数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。

    例如:

           public class Test {

                public static void main(String argv[]){

                int a[]= new int[5]; 

                System.out.println(a[3]);  //a[3]的默认值为0

                }

            }

    • 对于基本数据类型而言,默认初始化值各有不同

    • 对于引用数据类型而言,默认初始化值为null(注意与0不同!)

    4、数组元素的引用

    • 定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;

    • 数组元素的引用方式:

                  数组名[数组元素下标]

    • 数组元素下标可以是整型常量或整型表达式。

       如a[3], b[i] ,c[6*i];

    • 数组元素下标从0开始;长度为n的数组合法下标取值范围:0 —>n-1;

          如inta[]=new int[3];  可引用的数组元素为a[0]、a[1]、a[2]l每个数组都有一个属性length指明它的长度,

            例如:a.length指明数组a的长度(元素个数)数组一旦初始化,其长度是不可变的

    二、多维数组

    1、 二维数组[][]:数组中的数组

    •  格式1(动态初始化):int[][] arr =new int[3][2];

     定义了名称为arr的二维数组,二维数组中有3个一维数组,每一个一维数组中有2个元素,一维数组的名称分别为arr[0], arr[1], arr[2],给第一个一维数组1脚标位赋值为78写法是:arr[0][1]= 78;

    •  格式2(动态初始化):int[][] arr =new int[3][];

     二维数组中有3个一维数组。每个一维数组都是默认初始化值null (注意:区别于0),可以对这个三个一维数组分别进行初始化。

      arr[0] =new int[3];    arr[1] =new int[1];   arr[2] =new int[2];

    注:int[][]arr = new int[][3];  //非法

    • 格式3(静态初始化):int[][] arr =new int[][]{{3,8,2},{2,7},{9,0,1,6}};

     定义一个名称为arr的二维数组,二维数组中有三个一维数组,每一个一维数组中具体元素也都已初始化,第一个一维数组 arr[0] ={3,8,2};第二个一维数组arr[1] ={2,7};第三个一维数组arr[2] ={9,0,1,6}; 第三个一维数组的长度表示方式:arr[2].length;

    • 注意特殊写法情况:int[] x,y[];x是一维数组,y是二维数组。

    • Java中多维数组不必都是规则矩阵形式。

    2、数组元素的排序

    数组排序

    • 插入排序

         直接插入排序、折半插入排序、Shell排序

    • 交换排序

        冒泡排序、快速排序(或分区交换排序

    • 选择排序

         简单选择排序、堆排序

    • 归并排序

    • 基数排序

    3、排序方法的选择

    • 若n较小(如n≤50),可采用直接插入或直接选择排序。当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插入,应选直接选择排序为宜。   

    • 若文件初始状态基本有序(指正序),则应选用直接插入、冒泡或随机的快速排序为宜;   

    • 若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。

    4、冒泡排序

        排序思想:相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其它的数进行类似操作。

    5、数组排序

    • java.util.Arrays类的sort()方法提供了数组元素排序功能:

          importjava.util.*;

              publicclass Sort {

              publicstatic void main(String[] args){

                  int[] number = {5,900,1,5,77,30,64,700};

                  Arrays.sort(number);

                      for(inti= 0; i< number.length;i++){

                      System.out.println(number[i]);

                    }

              }

          }

    6、操作数组的工具类:Arrays

    • java.util.Arrays类包含了用来操作数组(比如排序和搜索)的各种方法。Arrays拥有一组static方法。

    1. equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。

    2. fill():将值填入array中。
    3. sort():用来对array进行排序。
    4. binarySearch():在排好序的array中寻找元素。另:System.arraycopy():array的复制。
    7、数组操作常见问题
    • 数组脚标越界异常(ArrayIndexOutOfBoundsException)int[] arr =new int[2];System.out.println(arr[2]);访问到了数组中的不存在的脚标时发生。
    • 空指针异常(NullPointerException)int[] arr = null;System.out.println(arr[0]);
        arr引用没有指向实体,却在操作实体中的元素时。注意:编译时,不报错!!db61c88116e4fc3ec95b80462fc4a526.gif9d54bc595182c46dacd4054163c282e2.png感谢您关注              QQ:1418866575         关注我,让成长跑得更快点。
    展开全文
  • 稀疏矩阵:矩阵中大量元素都是零 存储系数矩阵通常只存上三角或下三角 ...上三角对应的以为数组的下标:(2n-i+1)*i/2+j 二,下三角 上三角对应的以为数组的下标:(i+1)*i/2+j 转载于:https://www.cnblogs.co...

    稀疏矩阵:矩阵中大量元素都是零

    存储系数矩阵通常只存上三角或下三角

    另一半的信息由已知信息推断

    一,上三角a[4][4]

                 

     

     上三角对应的以为数组的下标:(2n-i+1)*i/2+j

    二,下三角

                      

     上三角对应的以为数组的下标:(i+1)*i/2+j

     

    转载于:https://www.cnblogs.com/excellencesy/p/8647473.html

    展开全文
  • 一维数组下标为index,二维数组长度为m * n,则: 一维数组转换为二维数组 row = index / n col = index % n 二维数组转换为一维数组 index = col + row * n

    设一维数组下标为index,二维数组长度为m * n,则:

    一维数组转换为二维数组

    row = index / n 
    col = index % n
    

    二维数组转换为一维数组

    index = col + row * n
    
    展开全文
  • java二维数组练习题精品文档2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 java二维数组练习题 1) 数组的元素通过来访问,数组Array的长度为。2) 数组复制时,”=“将数组的传递给...

    java二维数组练习题

    精品文档2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 java二维数组练习题 1) 数组的元素通过来访问,数组Array的长度为。

    2) 数组复制时,”=“将一个数组的传递给另一个数组。

    3) 没有显式引用变量的数组称为数组。

    4) JVM将数组存储在中。

    5) 数组的二分查找法运用的前提条件是数组已经。

    6) 矩阵或表格一般用维数组表示。

    7) 如果把二维数组看成一维数组,那么数组的元素是数组。

    8) Java中数组的下标的数据类型是。

    9) 不用下标变量就可以访问数组的方法是。

    10) 数组最小的下标是。

    11) arraycopy的最后一个参数指明。

    12) 向方法传递数组参数时,传递的是数组的。

    13) 线性查找法的平均查找长度为。

    14) 数组初始化包括。

    15) 数组下标访问超出索引范围时抛出异常

    16) 浮点型数组的默认值是。

    17) 对象型数组的默认值是。

    18) 对象类型的数组虽然被默认初始化,但是并没有构造函数。

    19) 二维数组的行的长度不同。

    20) 数组创建后其大小改变。

    二选择题

    1. 下面错误的初始化语句是___

    A. char str[]=“hello”; B. char str[100]=“hello”;

    C. char str[]={‘h’,’e’,’l’,’l’,’o’};D. char str[]={‘hello’};

    2. 定义了一维int型数组a[10]后,下面错误的引用是___

    A.a[0]=1; B.a[10]=2; C.a[0]=5*2; D.a[1]=a[2]*a[0];

    3. 下面的二维数组初始化语句中,正确的是____

    A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}};

    C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0};

    4. 引用数组元素时,数组下标可以是____

    A.整型常量 B.整型变量 C.整型表达式 D.以上均可

    5. 定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____

    A.4B.25C. 18D. 17

    6. 下列初始化字符数组的语句中,正确的是____

    A. char str[5]=“hello”; B. char str[]={‘h’,’e’,’l’,’l’,’o’,’\0’};

    C. char str[5]={“hi”}; D. char str[100]=““;

    7. 数组在Java中储存在中

    A.栈

    main{ B.队列 C.堆 D.链表. 下面程序的运行结果是____

    int x=30;

    int[] numbers=new int[x];

    x=60;

    System.out.println;

    }

    A.60B.20C.30D.50

    9. 下面 不是创建数组的正确语句

    A.float f[][]=new float[6][6];

    C.float f[][]=new float[][6];

    10. 下面不是数组复制方法的是

    A.用循环语句逐个复制数组

    C. 用”=“进行复制

    A.a 11. 数组a的第三个元素表示为 B.a[3]C.aD.a[2]

    12. 当访问无效的数组下标时,会发生

    A. 中止程序 B.抛出异常 C. 系统崩溃 D.直接跳过

    13. 使用arraycopy方法将数组a复制到b正确的是

    A. arraycopyB. arraycopy

    C.. arraycopyD. arraycopy

    14. 关于数组默认值,错误的是

    A. char--’”u0000’ B. Boolean--trueC. float--0.0fD. int-- 0

    15. 关于数组作为方法的参数时,向方法传递的是

    A. 数组的引用B.数组的栈地址C.

    展开全文
  • 如果要实现读取多行字符串字符输入,那么就不可以用cin.getline,只可以将字符串分成每个字符存入字符数组 二、方法 逐个字符存入字符数组中,此时不一定要用getchar,直接存入就好了。 char ch; char s[10001]; ...
  • 维数组保存下标的好处

    千次阅读 2013-11-07 12:21:42
    最近在做个消除类的小游戏,我把各个元素保存在二维数组里面,然后把数组的下标保存在元素里面,感觉保存数组的下标是多余的,因为可以通过遍历数组找到元素的数组的下标,能够少两个“行列”的成员变量就尽量少,...
  • 给定个整数n,表示数组的个数,依次读数再进行操作。 (数组从0开始读起) #include <iostream> #include<stdio.h> #include<algorithm> using namespace std; int main() { int a[10]; int...
  • C++数组介绍数组是有序数据的集合。要寻找一个数组中的某一个元素必须给出两个...C++一维数组的定义C++中定义一维数组的一般格式:类型标识符 数组名[常量表达式] 例如:int array[20]; 表示数组名为array,类型为...
  • 一维数组一样,二维数组的数组名也是指向第一个数组元素的(即Array等于&Array[0][0]),且二维数组的数组元素在计算机内的内存存放也是连续的,但不一样的是:Array+1的值不是&Array[0][1],而是&Array[1][0](即...
  • 一维数组输出数据到工作表想要把数组中数据输出到工作表,通常使用到Range对象Resize属性。通过Resize建造一个大小和数组一样单元格区域来写入数组数据。其中,Resize行列两参数往往使用变量。注意事项①...
  • 动态二维数组下标访问

    千次阅读 2012-09-30 11:16:37
    下面代码先申请个动态二维数组,然后按照下标访问其中元素。这是个很简单问题,我只是想强调一下,顺便辟谣。因为之前看网上某些文章说c++申请动态二维数组是不能按照下标访问,还要经过自己将下标转换为...
  • 怎么把一个二维数组按照第一维下标拆分成若干的一维数组,不使用循环语句能实现么,直接参数怎么传?
  • 用for循环设置二维数组下标和元素 https://blog.csdn.net/number1killer/article/details/80027994 个意外导致数组中元素无限循环实例_https://blog.csdn.net/number1killer/article/details/80021129遍历...
  • 一维数组转二维数组

    千次阅读 2015-05-29 15:32:25
    假设一维数组的下标为X,可以把它在逻辑上转换为二维数组的下标:  m = X / 5  n = X % 5  比如你要找第一行第二列的元素,那在一维数组中就是a[1]  转化为二维坐标就是b[0][1]。  其实多维数组和一维数组...
  • 一维数组元素引用方法主讲人李刚目录1一维数组元素引用实例演示2一维数组元素... 一维数组元素引用格式数组引用格式数组名[下标]下标为整数从0开始最大值为长度-1下标要用方括号括起来例如int a[5]={2,7,9,4,3}; a
  • 数组1.什么是数组?数组是一个相同数据类型元素的集合,并且声明一个数组就会在内存中开辟一个连续的空间数组长度一旦声明无法改变,...数组的基本使用(主要以一维数组为例)1)数组的声明与初始化public class Test03...
  • C语言总结第七章、数组一维数组一维数组的定义一维数组的引用一维数组的初始化程序举例二维数组及多维数组二维数组的定义二维数组元素的引用二维数组元素的初始化程序举例字符数组和字符串字符数组 第七章、数组 ...
  • 所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的...数组是用于储存多个相同类型数据的集合,数组有一维数组,二维数组,...
  • 一维数组与二维数组之间转换

    千次阅读 2018-08-26 20:12:21
    一维数组的下标Index(小标从0开始)和二维下标X、Y(下标从0开始)之间的转换公式: 一维到二维的转换:X = int ( Index / 9 ) Y = Index % 9  二维到一维的转换: Index = X * 9 + Y  (注意:这里是针对横...
  • 用数组下标的形式记录一个一维数组下标所对应元素出现在个数,并对此一维数组进行排序。 例如:一个一维数组元素为:a[4] = { 2,3,2,5 };此数组为一个长度为4数组,另一个空数组x[6]={ 0 };x[0] = 0...
  • 我有故事,你有酒么?C++数组介绍数组是有序数据的集合。要寻找一个数组中的某一个元素必须给出两个要素,即数组名和下标,数组名和下标惟一地标识一个数组中的一个元素。...C++一维数组的定义C++...
  • 我有故事,你有酒么?C++数组介绍数组是有序数据的集合。要寻找一个数组中的某一个元素必须给出两个要素,即数组名和下标,数组名和下标惟一地标识一个数组中的一个元素。...C++一维数组的定义C++...
  • 1036. Crypto Columns数组与下标(二维数组) 简单 题目大意: 给出种加密方式,把个字符串按行写成二维形式,再按照给定字符串字符大小顺序 逐列替输出。给出加密后字符串,还原本来字符串。 解题思路...
  • 一维数组的定义和一维数组的引用 内存中一串连续的存储单元(变量),叫数组。指针移动和比较只有在一串连续的数组中才有意义。 当数组中每个变量只带一个下标时,为一维数组。 定义一个一维数组: 类型名 数组...
  • 一维数组与二维数组的区别

    万次阅读 2019-02-25 14:33:30
    一维数组的定义: 当数组中每个元素都只带有一个下标时,称这样的数组为一维数组,一维数组实质上是一组相同类型数据的线性集合 举例:a(10),表示的就是a(0)到a(10)之间的十一组数据的集合,数据元素可以是数字...
  • 01一维数组的定义1、一般形式类型符 数组名[常量表达式]2、数组名的命名规则和变量名相同,遵循...02一维数组的引用1、引用形式数组名[下标]2、在定义数组并对其中各元素赋值后,就可以引用数组中的元素。3、应...
  • 1007. To and Fro 数组与下标(二维数组) 简单 题目大意: 给出种加密方式,把个字符串按列写成二维形式,再逐行从左到右或从右到左交替输出。给出加密后字符串,还原本来字符串。 解题思路: 按照解密...
  • 定义一维数组的一般格式为:  类型标识符 数组名[常量表达式]; 例如: int a[10]; 它表示数组名为a,此数组为整型,有10个元素。 关于一维数组的几点说明: 1) 数组名定名规则和变量名相同,遵循标识符定名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,053
精华内容 2,421
关键字:

一维数组的下标