zoukankan      html  css  js  c++  java
  • J-13 常见对象

    StringBuffer类
    StringBuilder类
    数组高级
    Arrays类

    StringBuffer类

    概述

    • 我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题

    • 线程安全的可变字符序列

    • 效率与安全是矛盾的
      安全 -- 同步 -- 数据是安全的
      效率 -- 不同步 -- 数据是不安全的

    • StringBuffer与String的区别:
      ① 前者长度和内容可变,后者不可变
      ②如果是有前者进行字符串拼接,不会浪费太多的空间

    构造方法

    public StringBuffer() ,常用

    无参构造方法

    public StringBuffer(int capacity)

    指定容量的字符串缓冲区对象

    public StringBuffer(String str)

    指定字符串内容的字符串缓冲区对象

    成员方法

    public int capacity()

    返回当前容量,理论值。

    public int length()

    返回长度(字符数),实际值

    添加功能

    • public StringBuffer append(String str)
      可以把任意类型数据添加到字符串缓冲区里面,并返回子字符串缓冲区本身(可以采用链式编程)

        StringBuffer sb = new StringBuffer();
        sb.append("hello").apend(true).append(12).append(34.56);
      
    • public StringBuffer insert(int offset,String str)
      可以把任意类型数据添加到字符串缓冲区某一位置中

    删除功能

    • public StringBuffer deleteCharAt(int index)
      删除指定位置的字符,并返回本身
    • public StringBuffer delete(int start,int end)
      删除从指定位置开始到指定位置结束的内容,并返回本身
      (包左不包右)
      全部删除,sb.delete(0, sb.length());

    替换功能

    • public StringBuffer replace(int start,int end,String str)
      从start开始到end,用str替换(包左不包右)

    反转功能

    • public StringBuffer reverse()
      字符串翻转。"abc"变为"cba"。

    截取功能

    • public String substring(int start)
      返回值为String类型!
    • public String substring(int start,int end)
      返回值为String类型!

    StringBuffer与String的相互转换

    • 为什么进行类之间的转换
      A --> B的转换:为了使用B的功能
      B --> A的转换:需要的结果是A类型,需要转回来

    String 到 StringBuffer

    • 通过构造方法

        String s = "hello";
        StringBuffer sb = new StringBuffer(s);
      
    • 通过append()方法

        StringBuffer sb2 = new StringBuffer();
        sb2.append(s);
      

    StringBuffer 到 String

    • 通过构造方法

        StringBuffer buffer = new StringBuffer("java");
        String str = new String(buffer);
      
    • 通过toString()方法

        String str2 = buffer.toString();
      

    StringBuffer和数组的区别

    二者都可以看成是容器。
    ① StringBuffer的数据最终是一个字符串数据。
    ② 数组可以放置多种数据,但必须是同一种数据。

    StringBuilder类

    一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

    String、StringBuffer、StringBuilder的区别

    ① String是内容不可变的,而StringBuffer、StringBuilder是内容可变的;
    ② StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高。

    数组高级

    冒泡排序

    规律:

    ① 相邻元素两两比较,大的往后放
    ② 每次比较完毕后,下一次比较的时候减少一个元素的比较
    ③ 总共需要比较数组长度-1次。

    二分查找

    思路:

    • 定义最小索引,最大索引
    • 计算出中间索引
    • 中间索引值与要查找的元素进行比较。
      ① 相等
      ② 大了,在左边找
      ③ 小了,在右边找
    • 重写获取最小索引或者最大索引
      ① 大了,max = mid -1;
      ② 小了,min = mid +1;

    注意:

    无序数组,不能采用二分查找。(改变了本身的索引值)

    Arrays类

    概述

    针对数组进行操作的工具类。
    无构造,全静态方法。

    成员方法

    public static String toString(int[] a)

    把数组转成字符串
    开发原则:只要是对象,就要先判断对象是否为null.

    public static void sort(int[] a)

    排序
    底层是快速排序。

    public static int binarySearch(int[] a,int key)

    二分查找

  • 相关阅读:
    陈欧代言
    location传值
    jsp中button传值
    电影
    排序
    比较两个字符,相等输出yes,不相等输出no
    查表求平方值
    数据库查询调优(SQL 2008)
    HelloWorld
    关于缓存 (这个自己也在慢慢学习,慢慢总结中,有路过的,求指点,赶紧不尽。。。)
  • 原文地址:https://www.cnblogs.com/android-lyz/p/4836039.html
Copyright © 2011-2022 走看看