zoukankan      html  css  js  c++  java
  • StringBuffer、高级数组及包装类

    1:StringBuffer(掌握)
    (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,

    为了解决这个问题,Java就提供了一个字符串缓冲区类。

    StringBuffer供我们使用。

    (2)StringBuffer的构造方法

    StringBuffer()
    StringBuffer(int size)
    StringBuffer(String str)

    (3)StringBuffer的常见功能

    • 添加功能  sb.append("1111111111");
    • 删除功能    sb.delete(6, 10);
    • 替换功能    sb.replace(2, 4, "oh");
    • 反转功能       sb.reverse();
    • 截取功能(注意这个返回值)

    (4)StringBuffer的练习(做一遍)
    A:String和StringBuffer相互转换
      String -- StringBuffer
           构造方法
      StringBuffer -- String
           toString()方法
    B:字符串的拼接
    C:把字符串反转
    D:判断一个字符串是否对称
    (5)小细节:

    String,StringBuffer,StringBuilder的区别?

      A:String是内容不可变的,而StrignBuffer,StringBuilder都是内容可变的。

      B:StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高。

    StringBuffer和数组的区别?

      二者都可以看成是一个容器,装其他的数据。

    但是,StringBuffer的数据最终是一个字符串数据。

    而数组可以防止多种数据,但必须是同一种数据类型的。

    形式参数问题:

           基本类型:形式参数的改变不影响实际参数
    引用类型:形式参数的改变直接影响实际参数

    注意:String作为参数传递,效果和基本类型作为参数传递是一样的。


    2:数组高级以及Arrays(掌握)
    (1)排序
      冒泡排序
        相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。

      同理,其他的元素就可以排好。

    public static void bubbleSort(int[] arr) {
            for (int i = 0; i < arr.length - 1; i++) {
                for (int j = 0; j < arr.length - i - 1; j++) {
                    if (arr[j] > arr[j + 1]) {
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
            System.out.print("排序后:");
     }

      选择排序
        把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。

      同理,其他的元素就可以排好。

    public static void selectArray(int[] arr) {
            for (int i = 0; i < arr.length - 1; i++) {
                for (int j = i + 1; j < arr.length; j++) {
                    if (arr[j] > arr[i]) {
                        int temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
            System.out.print("排序后:");
     }

    (2)查找
      基本查找
      针对数组无序的情况

    public static int getIndex(int[] arr,int value) {
        int index = -1;
        for(int x=0; x<arr.length; x++) {
            if(arr[x] == value) {
            index = x;
            break;
            }
        }
        return index;
    }                    

      二分查找(折半查找)

      针对数组有序的情况(千万不要先排序,在查找)

    public static int getIndex(int[] arr, int value) {
            int max = arr.length - 1;
            int min = 0;
            int mid = (max + min) / 2;
    
            while (arr[mid] != value) {
                if (arr[mid] > value) {
                    max = mid - 1;
                } else if (arr[mid] < value) {
                    min = mid + 1;
                }
                if (max < min) {
                    return -1;
                }
                mid = (max + min) / 2;
            }
            return mid;
      }

    (3)Arrays工具类
      是针对数组进行操作的工具类。包括排序和查找等功能。

    public static String toString(int[] a)              //把数组转成字符串
    public static void sort(int[] a)                       //对数组进行排序(底层使用快速排序)
    public static int binarySearch(int[] a,int key)  //二分查找

    (4)把字符串中的字符进行排序
      举例:
        "edacbgf"
      得到结果
        "abcdefg"

    3:Integer(掌握)
    (1)包装类

      为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型。

    (2)Integer的构造方法

    Integer i = new Integer(100);
    Integer i = new Integer("100");

      注意:这里的字符串必须是由数字字符组成
    (3)String和int的相互转换
      String --> int
        Integer.parseInt("100");
      int    --> String
        String.valueOf(100);
    (4)其他的功能(了解)
      进制转换
    (5)JDK5的新特性
      自动装箱 基本类型--引用类型
      自动拆箱 引用类型--基本类型
    把下面的这个代码理解即可:

        Integer i = 100;
        i += 200;

    (6)-128到127之间的数据缓冲池问题

      注意:Integer的数据直接赋值,如果在-127~128之间,会直接从缓冲池里获取数据。

    4:Character(了解)
    (1)Character构造方法

    Character ch = new Character('a');

    (2)要掌握的方法:

    • 判断给定的字符是否是大写
    • 判断给定的字符是否是小写
    • 判断给定的字符是否是数字字符
    • 把给定的字符转成大写
    • 把给定的字符转成小写

    (3)案例:
      统计字符串中大写,小写及数字字符出现的次数

  • 相关阅读:
    Windows Phone 开发 MD5计算
    php 3des加密算法以及与java,.net,c#的交互的一致性
    <加密算法c#>——— 3DES加密之ECB模式 和 CBC模式
    Blend PathListBox 使用
    计算机的几种类型单词、快捷键
    【SQL Server】 数据定义语言(定义基本表、完整性约束实现、索引)
    【SQL Server】 数据查询语句
    【WindowsPhone】 独立存储
    终结,铭记
    Day 3,4,5
  • 原文地址:https://www.cnblogs.com/crazypokerk/p/9042998.html
Copyright © 2011-2022 走看看