笔记——Java基【集合】

来源:互联网 发布:java游戏模拟器 编辑:程序博客网 时间:2024/06/03 19:02

6.1 String

1、字符串是一个特殊的对象。一旦被初始化就不可以被改变。

2、String 类复写了object的equals方法,该方法用于判断字符串是否相同。s1.equals(s2)。

3、

String s1 = "abc";String s2 = new String("abc");//s1有一个对象,s2在内存中有两个对象。
4、

String s1 = "abc";String s2 = new String("abc");String s3 = "abc";String.out.println(s1 == s2);String.out.println(s1 == s3);

第一个是false,第二个是true。

5、常见的操作有哪些?

获取

1.1 字符串中的字符数,也就是长度。int length() 获取长度。

1.2 根据位置获取位置上的某个字符。char charAt(int index) 。当访问到不存在脚标时会出现越界。

1.3 根据字符获取该字符在该字符串的位置,反向索引从后找第一个。 注意位置是脚标。如果没有脚标返回-1.

int indexOf(int ch) 返回的是ch在字符串中第一次的位置。

int indexOf(int ch,int fromIndex) 从fromIndex位置获取。 

1.4 获取字符串的位置。注意位置是脚标

int indexOf(String Str) 返回的是字符串String在字符串中第一次的位置。

int indexOf(String Str,int fromIndex) 从fromIndex位置获取。 


判断

2.1 字符串中是否包含某一个字串。boolean contains(str) ,int indexOf(String Str) 也可以。

2.2 字符串中是否有内容。boolean isEmpty() 原理判断长度是否为0

2.3 字符串是否是以制定内容开头。boolean startsWith(String prefix)

2.4 字符串是否是以制定内容结尾。boolean endsWith(String suffix)

2.5 内容是否相同。boolean equals(str)

2.6 内容是否相同忽略大小写 boolean equalsIgnoreCase(str)


转换 (查文档)

3.1 将字符数组转成字符串。

构造函数 String(char [])

String(char [], offset, count) 将字符数组一部分转换成字符串

静态方法:copyValueOf()  valueOf()

3.2 将字符串转成字符数组。

char toCharArray()

3.3 将字节数组转成字符串。

3.4 将字符串转成字节数组。

3.5 将基本数据类型转换成字符串


替换

String replace(oldchar, newchar)


切割

String[] split(regex) 得到是字符串数组


字串。获取字符串的一部分

String  substring(begin, end)


转换,去除空格,比较

将字符串变大写或小写。

将多余空格去除。

对两个字符串进行自然顺序的比较。


6.2 StringBuffer

1、是字符串缓冲区,是一个容器。

特点:长度是可以变化的,可以直接操作多个数据类型,最后可以通过toString变成字符串。

public static void main(String[] args){StringBuffer sb = new StringBuffer();StringBuffer sb1 = sb.append(34);System.out.println(sb.toString());System.out.println(sb1.toString());}
注意是sb.append,结果都是34

2、功能:

(1)存储

StringBuffer append() 将指定数据作为参数添加到已有数据结尾处。 

StringBuffer insert (index,数据) 可以将数据插入到指定index位置。 


(2)删除

StringBuffer delete(start, end) 删除缓存区的数据,包含start 不包含end

StringBuffer deleteCharAt(index) 删除指定位置的字符


(3)获取

char charAt(index)

int indexOf(str)

int lastIndexOf(str)

int length()

String substring(start,end)


(4)修改

StringBuffer replace(start,end,str)

void setCharAt(index, char)


(5)反转

StringBuffer reveser()


(6) void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 
          将字符从此序列复制到目标字符数组 dst。 


3、 StringBuider

1、jdk 1.5版本之后,StringBuffer是线程同步的,StringBuider是不同步的。


6.3 基本数据类型对象包装类

1、int,Integer,char Charcter,其他大写首字母。

2、Integer.MAX_VALUE 表示最大值。

3、最常见作用:基本数据类型和字符串类型之间做转换。

基本数据类型->字符串

---基本数据类型+""

---基本数据类型.toString(基本数据类型值)

eg.Integer.toString(34);  34->"34"


字符串->基本数据类型

---基本数据类型包装类 xxx a = xxx.parsexxx(String);

eg.int a = Integer.parseInt("123");


十进制转换成其他进制

toBinaryString()


其他进制转换成十进制

parseInt(String,radix)


jdk 1.5 版本后 Integer x = new Integer(4) 可用 Integer x = 4;自动装箱。

也可以直接运算 x = x + 2 ,进行了自动拆箱



6.4 集合类
1、Collection根接口有两个常见子接口  List Set. List有序,set无序。
2、为什么这么多容器?因为每一个容器对数据的存储方式不同。这种存储方式称为数据结构。
3、集合存放的不是对象实体,是对象的地址(引用)。
4、add方法的参数类型是Object,以便于接受任何类型的对象。
5、List:特有方法,凡是可以操作角标的方法都是该体系特有的方法。
List集合特有的列表迭代器 ListIterator,在迭代时,不可以通过集合对象的操作方法操作集合中的元素。因为会发生并发修改异常。
所以只能使用迭代器操作元素,可是Iterator方法是有限的,只能进行判断取出和删除操作,如果想要添加或修改的话就需要使用其子接口ListIterator

0 0