小学生学习Java的StringBuffer和StringBuilder 以及 集合

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());
		}	
	}

猜你喜欢

转载自blog.csdn.net/zmw1224/article/details/80357851