Eclipse RCP 学习过程(五)

CC++不同,Java在数组的定义中并不为数组元素分配内存,因此[ ]中不用指出数组中元素的个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。必须经过初始化后,才能应用数组的元素。

除了这种定义数组的方式之外,java语言还提供了其他的定义形式,如下所示:

type[ ] arrayName

 对于以上举出的例子,我们也可以这样定义:

int[ ] intArray

  Date[ ] dateArray;

一维数组定义之后,必须经过初始化才可以引用。数组的初始化分为静态初始化和动态初始化两种:

     静态初始化:在定义数组的同时对数组元素进行初始化,例如:

         int  intArray[ ]={1,2,3,4};//定义了一个含有4

                                             // 元素的int型数组。

动态初始化:使用运算符new为数组分配空间,对于简

单类型的数组,其格式如下:

     type arrayName[ ]=new type[arraySize];

     type[ ] arrayName=new type[arraySize];

对于复合类型的数组,需要经过两步空间分配。

     首先: type arrayName[ ]=new type[arraySize];

     然后:arrayName[0]=new type(paramList);

              

               arrayName[arraySize-1]=new type(paramList);

例如:

String stringArrar[];  //定义一个String类型的数组

stringArray = new String[3];  //给数组stringArray分配3个应用

                                                   //空间,初始化每个引用值为null

stringArray[0]=new String(“how”);

stringArray[1]=new String(“are”);

stringArray[2]=new String(“you”);

当定义了一个数组,并用运算符new为它分配了内存空间后,就可以引用数组中的每一个元素了。元素的引用方式为:

                  arrayName[index]

    index为数组下标,可以是整型常数或表达式,如:arrayName[1], arrayName[i], arrayName[6*i]等。下标是0序的,即从0开始,一直到数组长度减1

另外,与CC++中不同,Java对数组元素要进行越界检查以保证安全性。同时,对于每个数组都有一个属性length指明它的长度,例如:

 

        intArray.length指明数组intArray的长度。

二维数组的定义方式

             type arrayName[ ][ ]

例如:

                int intArray[ ][ ]

也可以采用另一种定义方式:

                type[ ][ ] arrayName;

与一维数组一样,这时对数组元素也没有分配内存空间,同样要使用运算符new来分配内存,然后才可以访问每个元素。

二维数组的初始化也分为静态和动态两种。

     静态初始化:在定义数组的同时为数组分配空间。

 

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

 

不必指出数组每一维的大小,系统会根据初始化时给出的初始值的个数自动算出数组每一维的大小。

动态初始化:对高维数组来说,分配内存空间有下面两种方法:

 

1.直接为每一维分配空间,如:

 

     type  arrayName[ ][ ]=new type[arraylength1][arraylength2]

 

例如:

      int a[ ][ ]=new int[2][3]

2.从最高维开始(而且必须从最高维开始),分别为每一维分配空间,如:

     String s[ ][ ]=new String[2][ ];

     s[0]=new String[2];

     s[1]=new String[3];

     s[0][0]=new String(“Good”);

     s[0][1]=new String(“Luck”);

     s[1][0]=new String(“to”);

     s[1][1]=new String(“you”);

     s[1][2]=new String(“!”);

数组是用来表达一组同类型数据的数据结构

Java中数组是定长的,数组的大小不会动态变化

数组变量的值是数组对象实例的引用

java.util包中的Arrays类提供了一些操作数组的方法

java.util包中的Vector提供了动态变长数组的功能,Vector的容量可以随着需要变化

int binarySearch(type a[], type key)

数组a必须已经排序,否则返回值无意义

当数组a中有重复的值时,该方法返回的值不确定

如果key存在,则返回它在数组a中的位置

如果不存在,则返回它的“-(插入位置-1)”

void fill(type a[], type val)

       void fill(type a[], int fromIndx, int toIndex, type val)

包括a[fromIndx],但不包括a[toIndex]

fromIndx== toIndex时,范围是一个空的范围

boolean equals(type a[], type a2[])

两个数组大小相同,并且每一个元素相等

两个null数组是相等的

void sort(type a[])

void sort(type a[], int fromIndx, int toIndex)

void sort(type a[], Comparator c)

void sort(type a[], int fromIndx, int toIndex, Comparator c)

包括a[fromIndx],但不包括a[toIndex]

fromIndx== toIndex时,范围是一个空的范围

排序算法都具有n*log(n)的计算复杂性,效率高

排序算法都保证稳定,即排序算法不会改变相等元素的顺序

对不同类型的数组,算法的实现并不完全相同

可以用自己的Comparator对象声明自定义的顺序

 

java.lang.System

void arraycopy(Object src, int src_position,Object dst,int dst_position, int length)

范围不能越界

可对任何同类型的数组进行复制

数组复制过程中做严格的类型检查

 

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 1.富客户端平台 1 1.1.概述 1 1.2.Eclipse RCP 建设风格——插件,扩展和扩展点 1 2.创建你的第一个RCP程序 1 2.1.创建一个RCP程序 2 2.2.启动你的RCP程序 5 2.3.应用程序VS 产品 6 3.应用程序里的插件ID 7 4.Actions的用法(菜单和工具栏) 7 4.1.概述 7 4.2.通过编码添加 8 4.3.由“扩展”方式向程序添加菜单和工具栏 11 5.添加组合键 19 5.1.概述 19 5.2.声明actions的组合键 19 6.系统托盘 24 7.外观 30 7.1.向程序中添加视图模板 31 7.2.向应用程序添加VIEW 36 7.3.向VIEW里添加action 40 8.和编辑器一起工作 51 8.1.概述 51 8.2.创建工程 51 8.3.创建并准备domain 模型 51 8.4.在视口中使用domain模型 57 8.5.加入编辑器 58 8.6.调用编辑器 66 8.7.向编辑器提供内容 70 9.对话框 71 9.1概述 71 9.2.预定义的对话框 71 9.2.1.概述 71 9.2.2.创建工程 71 9.2.3.声明action 71 9.2.4.调用对话框 71 9.3.用户自定义对话框 74 9.3.1.概述 74 9.3.2.创建工程 74 9.3.3.声明action 74 9.3.4.声明action 74 9.3.5.创建对话框 75 10.向导(wizard) 77 10.1.概述 77 10.2.例子 77 11.首选项 85 11.1 首选项 85 11.2.使用首选项 85 11.3.首选项页 91 12.添加状态条 97 12.1.安装状态条 97 12.2.共享状态条 98 13.透视 103 13.1.向你的程序中添加透视图 103 13.2.使透视图可选。 107 13.2.1.使透视图可由一个coolbar可选 107 13.2.2.使透视图可通过菜单选择。 109 14.进度报告 112 15.将外部类包含进你的程序 118 15.1.概述 118 15.2.向构建路径中添加jar 118 15.3.使jar在你的运行路径里有效 119 16.提示和策略 120 16.1.控制台日志 120 16.2.保存用户的布局 121 16.3.获得display 122 16.4.使用eclipse的“保存”action 123 16.5.装载模型 127 16.6.向你的程序添加错误日志视口 127 17.制造一个产品 129 17.1.概述 129 17.2.创建一个工程 130 17.3.测试你的产品 134 18.商标 134 18.1.欢迎页面 134 18.2.商标 135 18.3.风格化launcher 136 19.发布你的产品 137 20.发布引入外部jar的产品 141 20.1.整合外部jar和第三方库 141 Tip 142 21.1.创建一个新工程 144 21.2.创建一个产品 144 21.3.添加依赖性 145 21.4.向程序中添加action 146 21.5.创建一个帮助插件工程////原著写的不好 149 22.附录:配置文件 152 22.1.概述 152 22.2..project 153 22.3.Manifest.MF 154 23.附录:使用接口技术 154 23.2.Jface 154

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值