StringBuffer和StringBuilder
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
// 创建一个StringBuffer 对象
StringBuffer sb = new StringBuffer();
1.拼接
sb.append("loveme");
System.out.println(sb);
2.插入
sb.insert(4, "d").append("y");
System.out.println(sb);
3.修改
sb.setCharAt(2, 'x');
System.out.println(sb);
4. 直接传入的是要删除的字符的角标
sb.deleteCharAt(2);
System.out.println(sb);
5.反转
sb.reverse();
System.out.println(sb);
6.删除 传入结束坐标如果大于字符串的长度,相当于清空字符串
sb.delete(0, 1);
System.out.println(sb)
7.获取 StringBuffer中的字符
char c = sb.charAt(1);
System.out.println(c);
8.替换
sb.replace(0, 4, "you");
System.out.println(sb);
9.StringBuffer 转换成 字符串类型
String string = sb.toString();
System.out.println(string);
集合:或者叫容器,是一个包含多个元素的对象 集合比数组的优势: 1. 集合可以存储任意类型的对象数据,数组只能存储同一种数据类型 的数据。 2. 集合的长度是会发生变化的,数组的长度是固定的。
数组: 存储同一种数据类型的集合容器.
数组的特点: 1. 只能存储同一种数据类型的数据。 2. 一旦初始化,长度固定。 3. 数组中的元素与元素之间的内存地址是连续的。 注意: Object类型的数组可以存储任意类型的数据。/ 例子: public static void main(String[] args) { // 创建一个集合 保存3个学生 打印学生姓名 Collection collection = new ArrayList(); collection.add(new Student("p1",11)); collection.add(new Student("p2",12)); collection.add(new Student("p3",13)); // 集合转数组 // 向上转型 Object[] array = collection.toArray(); // 向下转型 // 需要把数组的每一个对象都转化成Student类型 // Student[] students = (Student[])array; 错误转法 for (int i = 0; i < array.length; i++) { // 将数组中的每一个对象 转换 Student s = (Student)array[i]; System.out.println(s.getName()); } }