Eclipse RCP 学习过程(五)

原创 2007年10月13日 22:16:00

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)

范围不能越界

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

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

 

 

 

基于Eclipse平台的RCP项目开发

在创建RCP项目之前,确保您下载的Eclipse支持RCP开发,为了免除配置插件的麻烦,我推荐使用 Eclipse IDE for Java EE Developers 。 首先到Eclip...
  • jimsonhappy
  • jimsonhappy
  • 2014年06月13日 14:20
  • 1343

eclipse_RCP添加视图

源文件:http://blog.csdn.net/lyq19870515/article/details/9346921 想要在RCP里添加视图 那就必须先建立视图: [j...
  • luoww1
  • luoww1
  • 2015年11月16日 14:54
  • 1208

Eclipse RCP开发桌面程序

KentySky 站在巨人的肩上,希望自己也可以长高一点!!! 博客园   首页   博问   闪存   新随笔   联系   订阅  管理 随笔-251  评论-86  文...
  • sinat_18366705
  • sinat_18366705
  • 2016年05月10日 12:02
  • 1819

eclipse rcp 打包出适合不同操作系统和操作位数.

1、查看自己eclipse的版本信息。点击菜单中的“Help”--->About Eclipse SDK,查看当前eclipse版本信息 2、在官网http://www.eclips...
  • luoww1
  • luoww1
  • 2013年03月15日 15:12
  • 1857

RCP添加帮助插件

开发基于Eclipse开的RCP软件可以直接加入Eclipse的帮助系统,使您的产品更加完善。Eclipse帮助系统提供的良好组织模式以及基于lucene的全文搜索功能。在Eclipse的网站上有一篇...
  • sidihuo
  • sidihuo
  • 2015年05月08日 11:41
  • 588

eclipse_RCP添加视图

想要在RCP里添加视图. 那就必须先建立视图: package com.view; import org.eclipse.jface.action.IMenuManager; import org....
  • lyq19870515
  • lyq19870515
  • 2013年07月16日 21:20
  • 4909

RCP的运行原理

第一步:插件类RCPPlugin       系统运行后首先在MANISFEST.MF文件中找到Bundle-Activator所对应的插件类,通过该类的静态方法获得插件对象的引用,然后获得插件...
  • ledoudou1992
  • ledoudou1992
  • 2014年11月26日 15:13
  • 169

使用Eclipse RCP进行桌面程序开发

所谓RCP,就是Rich Client Platform的缩写,即富客户平台,是Eclipse进化的产物(自3.0版以后出现),是Eclipse组织向用户提供的强大的开放性开发平台,能够使用户方便地创...
  • xxyy888
  • xxyy888
  • 2013年07月10日 11:50
  • 991

Eclipse RCP 中创建自定义首选项,并能读取首选项中的值

Eclipse RCP 中创建自定义首选项,并能读取首选项中的值
  • luoww1
  • luoww1
  • 2014年06月25日 12:36
  • 3652

让RCP程序自动加载新插件

http://blog.csdn.net/xiaofenguser/article/details/727454 用eclipse开发的RCP应用程序默认是不能自动加载新插件的,加一个插件到RCP系...
  • likunwen_001
  • likunwen_001
  • 2014年03月04日 11:03
  • 966
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Eclipse RCP 学习过程(五)
举报原因:
原因补充:

(最多只允许输入30个字)