java入门基础笔记——数组,字符串,向量(四)
1.数组
数组在创建对象后元素的个数就不可以改变,但是向量(vector)的元素个数可以发生动态改变。
例子:
int array[ ];
上面的例子只是为数组声明,但并没有为其分配内存空间。
int array[ ] = new int[20];
这是数组的初始化,数组在初始化后就分配了内存空间,并且不可以改变。
2.字符串String和StringBuffer
区别:String一旦定义后,就不可以改变其对象的内容,因为String在源码里定义的是final修饰符。而StringBuffer是称作字符缓冲区,是可以改变的。缓冲区会先申请一个缓冲区来放置字符序列,当字符序列的长度超过缓冲区的大小时,会重新改变缓冲区的大小。
String的方法:
String str = String.valueOf(123);
valueOf是将基本数据类型的数据转化为字符串。
String str = String.subString(int index ,int end);
subString是用来取出字符串里面的其中某部分内容。
需要注意的是index从0开始,end取得值是n-1。
例子:
public class Str {
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = new String("123456");
String b = a.substring(0,2);
System.out.println(b);
}
}
输出的是“12”
String的“+”:
String S1=“hello”+20+19; S1=“hello2019”
String S1=20+19+“hello”; S2=“39hello”
str(字符串)+=6;意思是在字符串最后添加6这个字符。
字符串转型:
int i = Interger.parseInt(str);
double i = Double.parseDouble(str);
3.向量(vector)
vector也是一组对象的集合,类中对象不能是简单的数据类型,它可以动态改变自己的数组大小。
适用情况:
(1)需要处理的数目不确定。
(2)需要将不同类的对象组合成一个数据序列。
(3)需要做频繁的增删查改。
(4)在不同类有大量数据传递。
ps:vector需要先创建后使用,否则直接使用会导致堆栈内存溢出,和访问异常。
4.集合(arrayList)数组动态链表
数组链的定义:
ArrayList< String > strList = new ArrayList< String >( );
strList.add();表示添加元素。
strList.set(int index,String A);表示修改元素,index为查找位置,A为替代元素。
strList.size();表示的是获取数组容量大小。
remove(index);表示删除某个元素。
strList.remove(strList.size()-1);表示删除最后一个元素。
总结一下:
需要注意的是String和StringBuffer的区别,一个是不可修改一个是可修改。
数组元素定义后不可修改,向量可以,集合链表可以。