您的位置:首页 > 编程语言 > Java开发

java学习笔记六——数组、向量、字符串

2014-03-15 09:39 260 查看


一、数组

1.数组在使用前必须先说明,也就是要先定义,一维数组的定义为:

type arrayName[ ];或type[ ]arrayName;

其中,type可以为Java中任意的数据类型,包括简单类型和复合类型。与C和C++不同,Java在数组的定义中并不为数组元素分配内存,因此方括号[]中不用指出数组中的元素的个数,所以这些说明并不创建数组,它们只是引用变量,用来指向一个数组。

2.创建数组也就是数组的初始化,分为静态初始化和动态初始化两种。静态初始化就是在定义数组的同时对数组元素进行初始化,创建格式如下:type
arrayName[]={……}。动态初始化是使用运算符new为数组分配空间,这和所有对象是一样的,创建格式如下:type
arrayName[]=new tyoe[arraySize];或type[] arrayName=newtype[arraySize];

然后分别创建各个数组元素。

3.在数组中用arrayName.length控制数组下标范围。引用数组元素采用arrayName[index]的方法。

4.多维数组的定义方式:typearrayName[][];或type[][]
arrayName;

多维数组的静态初始化:type arrayName[][]={ {a,b},{c,d},……};

多维数组的动态初始化:type arrayName[][]=new type[arraySize1][arraySize2];或type[][]arrayName=new
type[arraySize1][];

多维数组的引用:arrayName[index1][index2]。

5.数组复制可以采用arraycopy()的方法,用法如下:

System.arraycopy(arrayName1,a,arrayName2,b,c);

意思是将arrayName1中从a到c复制给arrayName2,从arrayName2的b位置开始复制。

 

二、向量类(Vector)

1.它允许不同类型的元素共存于一个变长数组中,因此可以看作是把不同类型元素按照动态数组进行处理。每个Vector类的对象可以表达一个完整的数据序列,它不但可以保存顺序的一列数据,而且还提供了许多有用的方法来操作和处理这些数据。向量可以追加对象元素数量,因此可以更方便地修改和维护序列中的对象。创建了Vector的对象后,如果增加或删除了其中的元素,Vector的大小也相应地变大或变小。

2.Vector类有三个构造方法:

public Vector()——构造一个空向量。

public Vector(int initialCapacity)——以指定的初始存储容量initialCapacity构造一个空的向量Vector。

public Vector(int initialCapacity,intcapaccityIncrement)——以指定的初始存储容量initialCapacity和容量增量capacityIncrement构造一个空的向量Vector。

3.Vector类对象的操作

1)元素的添加

addElement(Object obj):将新元素添加到序列尾部。

insertElementAt(Object obj,int index):将指定对象obj插入指定位置index处,并将原先索引值等于或大于该指定值的元素索引值加1,也就是原处于插入位置及以后的元素都向后移动一个位置。

2)元素的删改

(1)setElementAt(Object
obj,int index):该方法将向量序列index位置处的对象元素设置obj,如果这个位置原来有元素,则被新值所覆盖。如果索引值index是负数或超出实际元素的个数,则抛出异常ArrayIndexOutOfBoundsException。

(2)removeElement(Object
obj):该方法将删除向量序列中第一个与指定的obj对象相同的元素,同时将后面的所有元素均前移一个位置,补上空位。这个方法返回的是一个布尔值,表示删除操作成功与否。

(3)removeElementAt(int
index):该方法删除index指定位置处的元素,同时将后面的所有元素均前移一个位置。如果索引值index是负数或超出实际元素的个数,则抛出异常ArrayIndexOutOfBoundsException。

(4)removeAllElements():该方法清除向量序列中的所有元素,同时向量的大小置为0。

3)元素的查找

(1)Object
elementAt(int index):该方法返回指定位置处的元素。如果索引值index是负数或超出实际元素的个数,则抛出异常ArrayIndexOutOfBoundsException。要注意的一个问题是:这个方法的返回值是Object类型的对象,在使用之前通常需要进行强制类型转换,将返回的对象引用转换成Object类的某个具体子类的对象。

(2)boolean
contains(Object obj):该方法检查向量序列中是否包含指定的对象元素obj。

(3)int
indexOf(Object obj,int start_index):该方法从指定的start_index位置开始向后搜索,返回所找到的第一个与指定对象obj相同的元素的下标位置。若指定的对象不存在,则返回-1。

(4)int
lastIndexOf(Object obj,int start_index):该方法从指定的start_index位置开始向前搜索,返回所找到的第一个与指定对象obj相同的元素的下标位置。所指定的对象不存在,则返回-1。

4)Vector类中的其他方法

public final int size()——返回向量中的元素个数。

public final boolean contains(Object elem)——如果对象elem是向量中的一个元素值,则返回true,否则返回false。

public final int indexOf(Object elem)——从向量的第一个元素开始查找指定对象,并返回该对象的索引值(如果查找不成功则返回-1)。

capacity()——返回Vector的容量。

clone()——建立Vector的备份。

copyInto(Object[])——把Vector中的元素复制到一个数组中。

fistElement()——返回第一个元素。

lastElement()——返回最后一个元素。

isEmpty()——判读是否为空。

setSize(int size)——设置Vector的大小。

trimToSize()——将Vector的容量下调至最小值。

 

三、字符串

1.字符串是内存中连续排列的一个或多个字符,Java提供的标准包java.lang中封装了类String和StringBuffer,分别用于处理不变字符串和可变字符串。

2.String类中常用的方法:

length():返回字符串中的字符个数。

charAt(int index):返回字符串中index位置的字符。

toLowerCase():将当前字符串中所有字符转换为小写形式。

toUpperCase():将当前字符串中所有字符转换为大写形式。

subString(int begainIndex):截取当前字符串中从beginIndex开始到末尾的字串。

replace(char oldChar,char newChar):将当前字符串中出现的所有oldChar转换为newChar。

concat(String str):将str连接在当前字符串的尾部。

compareTo()、equals()、equalsIgnoreCase()、regionMatches()等:实现字符串的比较。

3.StringBuffer类

StringBuffer类处理可变字符串。系统为String类对象分配内存时,按照对象中所包含字符的实际个数等量分配。而为StringBUffer类对象分配内存时,除去字符所占空间外,再另存16个字符大小的缓冲区。对于StringBuffer类对象,使用length()方法获得字符串的长度,另外,还有capacity()方法返回缓冲区的容量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐