java/StringBuffer/Integer/Character/array排序

一、StringBuffer:线程程安全的可变字符序列
       线程安全 --->同步的---->执行效率低
1、StringBuffer的构造方法:
   StringBuffer() :无参构造的形式,初始容量16
   StringBuffer(int capacity) :指定容量构造一个字符串缓冲区
   StringBuffer(String str) 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容
 
2、StringBuffer的获取功能:
  public int length()返回长度
  public int capacity()返回当前容量 (如果超过容量,系统自动分配(存储字符串的时候,英文的))

3、StringBuffer的添加功能
 (常用)public StringBuffer append(String/boolean....) :在字符串缓冲区中追加数据(在末尾追加),并且返回字符串缓冲区本身
              public StringBuffer insert(int offset,String str):将当前str字符串添加到指定位置处,它返回字符串缓冲区本身

4、StringBuffer的删除功能:
  public StringBuffer deleteCharAt(int index):移除指定位置处的字符..
  public StringBuffer delete(int start,int end):移除从指定位置处到end-1处的子字符串...

5、StringBuffer的反转功能:
     public StringBuffer reverse() :将缓冲区中的字符序列反转取代,返回它(字符串冲)本身

6、StringBuffer的截取功能:

  public String substring(int start):从指定位置开始截取,默认截取到末尾,返回值不在是缓冲区本身,而是一个新的字符串
  public String substring(int start,int end) :从指定位置开始到指定位置结束截取,包前不包后,返回值不在是缓冲区本身,而是一     个新的字符串

7、StringBuffer的替换功能: 
  public StringBuffer replace(int start,int end,String str)
  从指定位置到指定位置结束,用新的str字符串去替换,返回值是字符串缓冲区本身

二、Integer
  Integer类是int类型的包装类类型(int-->integer 自动装箱;integer-->int 自动拆箱
1、获取Integer的最值
   public static final int MAX_VALUE
   public static final int MIN_VALUE
 
 2、Integer提供了静态功能:
  public static String toBinaryString(int i)
  public static String toOctalString(int i)
  public static String toHexString(int i)
 
3、Integer的构造方法:
   public Integer(int value)--->底层实际代码执行的是:valueOf(int i)
   public Integer(String s)
   ****如何将int转换为String类型 --->valueOf(int i) ;
   ****将String转换为int类型--->static int parseInt(String s);

4、JDK5 以后提供了自动拆装箱
   可以将Integer-->拆箱  int类型
   可以将int类型--->装箱  Integer类型
   泛型,可变参数,增强for循环(在集合中)等等..
   JDK8特性 : Stream流  --> 表达式

三、character
  Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。
  以确定字符的类别(小写字母,数字,等等),
 1、构造方法:  public Character(char value)

 2、Character类的判断功能:

  public static boolean isDigit(char ch)确定指定字符是否为数字。
  public static boolean isLowerCase(int ch): 确定是否是小写字母字符
  public static boolean isUpperCase(int ch):确定是否大写字母字符
 
3、 两个转换功能:
   public static int toLowerCase(int codePoint)
   public static int toUpperCase(int codePoint)
四、排序方法(Array)
1、冒泡排序: 两两比较,大的往后放,第一次比较完毕最大值出现在最大索引处(首先遍历)
public static void bubboleSort(int[] arr) {
		for (int x = 0; x < arr.length - 1; x++) {
			for (int y = 0; y < arr.length - 1 - x; y++) {
				if (arr[y] > arr[y + 1]) {
					int temp = arr[y];
					arr[y] = arr[y + 1];
					arr[y + 1] = temp;
				}
			}
		}
	}

 2、选择排序:将每一个与其剩余所比较,将较小值放在最小索引处(首先遍历)
public static void selectSort(int[] arr) {
		for (int x = 0; x < arr.length - 1; x++) {
			for (int y = x + 1; y < arr.length; y++) {
				if (arr[x] > arr[y]) {
					int temp = arr[x];
					arr[x] = arr[y];
					arr[y] = temp;
				}
			}
		}
	}

3、数组中的元素查找法(基本查找法)---->折半查找(二分查找) :数组一定是 有序
 分析过程:
   A:定义最小索引和最大索引
   B:计算中间索引
   C:中间索引对应的元素和需要查找的元素比较
                    相等:直接返回中间索引
                    不相等:
                               大了,左边找---> max = mid -1 ;
                               小了,右边找---> min = mid + 1 ;
   D:重新计算中间索引 ,回到B继续查找
	public static int search(int[] arr,int value) {
		//1定义数组中的最小索引和最大索引
		int min = 0 ;
		int max = arr.length -1 ;
		//2 计算出中间索引
		int mid = (max+min)/2 ;
		//3)拿中间索引对应的元素和需要查找的元素进行比较
		//如果相等,返回
		while(arr[mid]!=value) {
			//不相等
			if(arr[mid] >value) {
				 max = mid -1 ;
			}else {
				 min = mid + 1 ;
			}
			//如果这value在数组中找不到,找不到返回-1
			if(min>max) {
				return -1 ;
			}
			//重新计算出中间索引
			mid = (max+min)/2 ;
		}
		return mid ;
	}
}

猜你喜欢

转载自blog.csdn.net/liuxiaofan_/article/details/80082618