java之StringBuffer、StringBuilder、集合

  StringBuffer

      JDK1.0出来的线程安全 耗费系统资源

   StringBuilder

      JDK1.5出来的线程不安全 节省系统资源

   StringBuffer和StringBuilder

      都是可变的字符序列(修改的是对象本身)

      操作StringBuffer的方法 一般是没有返回值

     String

      线程不安全的不可变的字符序列(不能修改字符串本身)

    方法

    1.拼接     2.插入    3.删除    4.反转     5.替换

    6.string与StringBuffer的相互转换

public class Demo02{
	public static void main(String[] args) {
		//fun1();
		//fun2();
		//fun3();
		//fun4();
		
		//替换
		StringBuffer sb=new StringBuffer();
		sb.append("aassddff");
		sb.replace(0, 4, "zzxx");
		System.out.println(sb);
			
	}
	
	private static void fun4() {
		//键盘输入一个字符串 将字符串反转
		System.out.println("请输入一个数");
		Scanner scanner=new Scanner(System.in);
		String string=scanner.nextLine();
		//转换成StringBuffer对象
		StringBuffer sb=new StringBuffer(string);
		//反转
		sb.reverse();
		System.out.println(sb);
	}

	private static void fun3() {
		StringBuffer stringBuffer=new StringBuffer();
		stringBuffer.append("zhangsan");
		//删除 留头不留尾
		//传入结束坐标>字符串的长度 相当于清空字符串
		stringBuffer.delete(0, 5);
		System.out.println(stringBuffer);
		
		//注意:传入是要删除的字符的角标
		stringBuffer.deleteCharAt(1);
		System.out.println(stringBuffer);
		
		//获取stringBuffer中的字符
		char c = stringBuffer.charAt(1);
		System.out.println(c);
		
		//字符数组 转化成 stringBuffer对象
		char[] array= {'a','b','c'};
		String string=String.valueOf(array);
		StringBuffer sb=new StringBuffer(string);
		System.out.println(sb);
	}

	private static void fun2() {
		//插入
		StringBuffer sb=new StringBuffer("zhangsan");
		sb.insert(5, "da").append("nb");
		System.out.println(sb);
		//修改
		sb.setCharAt(1, 'x');
		System.out.println(sb);
	}

	private static void fun1() {
		//创建StringBuffer对象
		StringBuffer sb=new StringBuffer();
		//容量 默认容量16
		System.out.println(sb.capacity());
		//长度
		System.out.println(sb.length());
		//拼接
		sb.append("zhangsan").append(false);
		System.out.println(sb);
		//StringBuffer转换成 字符串类型
		String string = sb.toString();
	}

}

    String  StringBuffer  StringBuilder

    三个操作字符串的类 当做参数时的效果

public class Demo03 {
	
	public static void fun1(String str) {
		str="haha";
	}
	
	public static void fun2(StringBuffer sb) {
		sb.append("haha");
	}
	
	public static void fun3(StringBuilder sb) {
		sb.append("haha");
	}
	
	public static void main(String[] args) {
		//三个操作字符串的类 当做参数时效果
		//字符串在当参数的时候 和基本数据类型一样
		//值传递 基本数据类型的包装类
		String string="zhangsan";
		fun1(string);
		System.out.println(string);
			
		//相当于传进去的是对象地址
		StringBuffer sb=new StringBuffer("zhangsan");
		fun2(sb);
		System.out.println(sb);
		
		StringBuilder sb1=new StringBuilder("zhangsan");
		fun3(sb1);
		System.out.println(sb1);
	}

}

      为什么系统要给基本数据类增加包装类?

      有类能增加成员方法 静态方法

      功能进行扩展

public class Demo04 {
	public static void main(String[] args) {
		//fun1();
		
		//valueOf intValue
		//如果值在[-128,127]之间
		//实际上是从系统已经创建好的数组
		//取出一个值给你
		//超过这个范围 会新建一个对象给你
		//所以下面的两个对象 地址不同
		Integer num1=128;
		Integer num2=128;
		System.out.println(num1==num2);
		System.out.println(num1.equals(num2));
			
	}

	private static void fun1() {
		//创建一个integer
		Integer n1=new Integer(10);
		//转化成数字
		int i=n1.intValue();
		System.out.println(i);
		
		//一般直接用数字来声明
		//JDK1.5 自动装箱和自动拆箱
		//实际上系统帮你调用一个方法
		//Integer.valueOf(10)方法
		Integer n2=10;
		//运算的时候会进行自动拆箱
		//n2.intValue
		int sum=n2+5;
		System.out.println(sum);	
		
	}
	
}

   集合

     集合(容器)

      1.单列集合

      2.双列集合


      集合为什么会出现?

      数组有什么弊端

      1.长度一旦确定 不能变了

      2.只能保存相同数据类型的元素

  

      集合的好处

      1.长度可变

      2.可以存放不同类型元素

      注意:集合中只能存储引用类型(对象类型)


         获取集合的长度

      判断是否包含某个元素

      从集合中删除一个元素

      判断集合是否为空

      清空数组

      集合转数组

public class Demo02集合方法 {
        public static void main(String[] args) {
		//多态的形式创建
		Collection collection=new ArrayList();
		boolean b1 = collection.add("a");
		boolean b2 = collection.add("b");
		boolean b3 = collection.add("c");
		//当你直接向集合中存储基本数据类型的时候
		//系统会帮你进行自动装箱
		//设计思想 返回值 能够适用下面的所有子接口
		//Set集合 是有可能添加失败的
		boolean b4 =collection.add("d");//可以把"d"换成10或false
		System.out.println(b1);
				
		//获取元素个数
		System.out.println(collection.size());
			
		//判断包含
		boolean rel1 = collection.contains("a");
		System.out.println(rel1);
				
		//删除元素
		boolean rel2 = collection.remove("b");
		System.out.println(rel2);
		System.out.println(collection);
		
		//判断是不是空的集合
		boolean rel3 = collection.isEmpty();
		System.out.println(rel3);
		System.out.println(collection);
				
		//集合转数组
		Object[] array = collection.toArray();
		for (Object object : array) {
		System.out.println(object);
		}
				
		//清空数组
		collection.clear();
		System.out.println(collection);
	    }
		
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值