java面向对象(四)-算法(查找,排序)

 

                           StringBuffer

StringBuffer:线程安全的可变字符序列

  StringBuffer的构造方法:

  StringBuffer() :无参构造的形式,初始容量16

  StringBuffer(int capacity) : 指定容量构造一个字符串缓冲区

  StringBuffer(String str) : 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容

 

 StringBuffer的获取功能:

  public int length() : 返回长度

  public int capacity() : 返回当前容量 (如果超过容量,系统自动分配(存储字符串的时候,英文的))

 

StringBuffer的添加功能:

   (实际开发中用的多):public StringBuffer append(String/boolean....) :在字符串缓冲区中追加数据(在末尾追加),并且返回字符串缓冲区本身

   public StringBuffer insert(int offset,String str) : 将当前str字符串添加到指定位置处,它返回字符串缓冲区本身

 

StringBuffer的反转功能:

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

 

StringBuffer的截取功能:

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

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

 

StringBuffer的替换功能:

   public StringBuffer replace(int start,int end,String str)

   从指定位置到指定位置结束,用新的str字符串去替换,返回值是字符串缓冲区本身

 

                                    包装类

  jdk5以后的特性:自动拆装箱

Integer类是int类型的包装类类型

 获取Integer的最值:

  public static final int MAX_VALUE 返回最大值

  public static final int MIN_VALUE  返回最小值

 

 Integer提供了静态功能:

  public static String toBinaryString(int i)  将十进制数转换成二进制

  public static String toOctalString(int i)  将十进制数转换成八进制

  public static String toHexString(int i)  将十进制数转换成十六进制

 

 基本类型对应都有一个保证类型,目的就为了将基本数据类型可以String类型之间进行互相转换

  byte         Byte

  short        Short

  int            Integer 

  long         Long

  float         Float

  double     Double

  char         character 

  boolean   Boolean

 

 

Integer的构造方法:

  public Integer(int value)

  public Integer(String s)

 

将int转换为String类型:

   valueOf(int i) ;

将String转换为int类型:

   static int parseInt(String s);

//int---->String

//定义一个int类型的变量

int num = 100 ;

//方式1: 字符串拼接

String str = "" + num ;

System.out.println("str:"+str);

 

//方式2:valueOf(int i) ;

//int -->Integer--->String

Integer i = Integer.valueOf(num) ;

String str2 = i.toString() ;

System.out.println("str2:"+str2);

 

//方式3:静态toString(int i): static String toString(int i )

String str3 = Integer.toString(num) ;

System.out.println("str3:"+str3);

 

System.out.println("----------------------");

 

//String--->int

String s = "100";

 

//方式1:String-->integer--->int

Integer ii = new Integer(s);

//public int intValue()

int num2 = ii.intValue() ;

System.out.println("num2:"+num2);

 

//方式2:(常用)public static int parseInt(String s)

int num3 = Integer.parseInt(s) ;

System.out.println("num3:"+num3);

 

JDK5 以后提供了自动拆装箱

   可以将Integer-->拆箱  int类型

   可以将int类型--->装箱  Integer类型

 

Character类:

 Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。

  以确定字符的类别(小写字母,数字,等等)

 构造方法:

 public Character(char value)

 

Character类的判断功能:

  public static boolean isDigit(char ch)  确定指定字符是否为数字。

  public static boolean isLowerCase(int ch):  确定是否是小写字母字符

  public static boolean isUpperCase(int ch):  确定是否大写字母字符

  

  两个转换功能:

   public static int toLowerCase(int codePoint)

   public static int toUpperCase(int codePoint)

                                          排序

冒泡排序: 两两比较,大的往后放,第一次比较完毕最大值出现在最大索引处....

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;

}

}

}

 

选择排序: 用0索引对应的元素依次后面索引对应的元素进行比较, 1索引..... 小的数据往前方法,就可以得到一个排好序的数组...

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;

}

}

}

                                           查找

 数组中的元素无序:基本查找法

 数组中的元素有序 : 二分查找法

   折半查找(二分查找) :数组一定是有序

 分析:

  A:定义最小索引和最大索引

  B:计算中间索引

  C:中间索引对应的元素和需要查找的元素比较

  相等,直接返回中间索引

  不相等:

  大了,左边找

  max = mid -1 ;

  小了,右边找

  min = mid + 1 ;

  E:重新计算中间索引 ,回到B继续查找

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值