java数组的排序和查找难点_第1页
java数组的排序和查找难点_第2页
java数组的排序和查找难点_第3页
java数组的排序和查找难点_第4页
java数组的排序和查找难点_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 数组高级l 排序 冒泡排序 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 选择排序 从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处 l 查找 基本查找 数组元素无序 二分查找 数组元素有序 2 Arrays类概述及其常用方法l Arrays类概述 针对数组进行操作的工具类。 提供了排序,查找等功能。 l 成员方法 public static String toString(int a) public static void sort(int a) public static int binarySearch(int a,int ke

2、y)3 Arrays类常用方法源码详细解释l public static String toString(int a) 源码解析 l public static int binarySearch(int a,int key) 源码解析 4 基本类型包装类概述l 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。l 常用的操作之一:用于基本数据类型与字符串之间的转换。 l 基本类型和包装类的对应 Byte,Short,Integer,Long,Float,Double Character,Boolean 5 Integer类概述及其构造方法l Integer类概述 In

3、teger 类在对象中包装了一个基本类型 int 的值 该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法 l 构造方法 public Integer(int value) public Integer(String s)6 Integer类成员方法l int类型和String类型的相互转换 int String String int public int intValue() l public static int parseInt(String s)l public static String toString

4、(int i)l public static Integer valueOf(int i)l public static Integer valueOf(String s)l 常用的基本进制转换 public static String toBinaryString(int i) public static String toOctalString(int i) public static String toHexString(int i)l 十进制到其他进制 public static String toString(int i,int radix)l 其他进制到十进制 public sta

5、tic int parseInt(String s,int radix)Java程序中的进制范围 2-36 6 JDK5的新特性l JDK1.5以后,简化了定义方式。 Integer x = new Integer(4);可以直接写成 Integer x = 4;/自动装箱。 x = x + 5;/自动拆箱。通过intValue方法。l 需要注意: 在使用时,Integer x = null;上面的代码就会出现NullPointerException。l 通过工具XJad查看底层调用的方法 7 Integer的面试题l Integer i = 1; i += 1;做了哪些事情 l 缓冲池(看程

6、序写结果) 通过查看源码知道为什么 l Integer i1 = new Integer(127);l Integer i2 = new Integer(127);l System.out.println(i1 = i2);l System.out.println(i1.equals(i2);l Integer i3 = new Integer(128);l Integer i4 = new Integer(128);l System.out.println(i3 = i4);l System.out.println(i3.equals(i4);l Integer i5 = 127;l Int

7、eger i6 = 127;l System.out.println(i5 = i6);l System.out.println(i5.equals(i6);l Integer.valueOf(127);l Integer i7 = 128;l Integer i8 = 128;l System.out.println(i7 = i8);l System.out.println(i7.equals(i8); 8 Character类概述及其构造方法l Character类概述 Character 类在对象中包装一个基本类型 char 的值 此外,该类提供了几种方法,以确定字符的类别(小写字母,

8、数字,等等),并将字符从大写转换成小写,反之亦然 l 构造方法 public Character(char value) 9 Character类成员方法l public static boolean isUpperCase(char ch)l public static boolean isLowerCase(char ch)l public static boolean isDigit(char ch)l public static char toUpperCase(char ch)l public static char toLowerCase(char ch) 10 正则表达式概述及基

9、本使用l 正则表达式:是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 l 举例:校验qq号码.1:要求必须是5-15位数字2:0不能开头 11 正则表达式的组成规则l 规则字符在java.util.regex Pattern类中 l 常见组成规则 字符 字符类 预定义字符类 边界匹配器 数量词 12 正则表达式的应用l 判断功能 public boolean matches(String regex) l 分割功能 public String split(String regex) l 替换功能 public String replac

10、eAll(String regex,String replacement) l 获取功能 Pattern和Matcher类的使用 l 判断功能:校验电话号码 l 分割功能:l aa,bb,cc l aa.bb.cc l aa bb ccl 文件路径 l 替换功能: l 把数用*替换获取功能: l da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu? 13 Math类概述及其成员方法l Math类概述 Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 l 成员方法 publi

11、c static int abs(int a) public static double ceil(double a) public static double floor(double a) public static int max(int a,int b) min自学 public static double pow(double a,double b) public static double random() public static int round(float a) 参数为double的自学 public static double sqrt(double a)获取随机数:1

12、-100之间 int number = (int)(Math.random()*100)+1获取随机数:start到end之间 public static int getRandom(int start, int end) return (int) (Math.random() * (end - start + 1) + start; 14 Random类概述及其构造方法l Random类概述 此类用于产生随机数 如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。 l 构造方法 public Random() public Ran

13、dom(long seed) Random类成员方法l public int nextInt()l public int nextInt(int n) 15 System类概述及其成员方法l System类概述 System 类包含一些有用的类字段和方法。它不能被实例化。 l 成员方法 public static void gc() public static void exit(int status) public static long currentTimeMillis() public static void arraycopy(Object src,int srcPos,Object

14、 dest,int destPos,int length) l System.gc()可用于垃圾回收。当使用System.gc()回收某个对象所占用的内存之前,通过要求程序调用适当的方法来清理资源。在没有明确指定资源清理的情况下,Java提高了默认机制来清理该对象的资源,就是调用Object类的finalize()方法。finalize()方法的作用是释放一个对象占用的内存空间时,会被JVM调用。而子类重写该方法,就可以清理对象占用的资源,该方法有没有链式调用,所以必须手动实现。 l 从程序的运行结果可以发现,执行System.gc()前,系统会自动调用finalize()方法清除对象占有的资

15、源,通过super.finalize()方式可以实现从下到上的finalize()方法的调用,即先释放自己的资源,再去释放父类的资源。 l 但是,不要在程序中频繁的调用垃圾回收,因为每一次执行垃圾回收,jvm都会强制启动垃圾回收器运行,这会耗费更多的系统资源,会与正常的Java程序运行争抢资源,只有在执行大量的对象的释放,才调用垃圾回收最好 16 BigInteger类概述及其构造方法l BigInteger类概述 可以让超过Integer范围内的数据进行运算 l 构造方法 public BigInteger(String val) l Integer i = new Integer(2147

16、483648);l System.out.println(i);l BigInteger bi = new BigInteger(2147483648);l System.out.println(bi); 17 BigInteger类成员方法l public BigInteger add(BigInteger val)l public BigInteger subtract(BigInteger val)l public BigInteger multiply(BigInteger val)l public BigInteger divide(BigInteger val)l public B

17、igInteger divideAndRemainder(BigInteger val) l BigInteger bi1 = new BigInteger(100);l BigInteger bi2 = new BigInteger(50);l System.out.println(bi1.add(bi2);l System.out.println(bi1.subtract(bi2);l System.out.println(bi1.multiply(bi2);l System.out.println(bi1.divide(bi2);l BigInteger b = bi1.divideAn

18、dRemainder(bi2);l System.out.println(b0);l System.out.println(b1); 18 BigDecimal类概述及其构造方法l 由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal l BigDecimal类概述 不可变的、任意精度的有符号十进制数。 l 构造方法 public BigDecimal(String val)问题的引出:在运算的过程中,float类型和double类型容易引起精度的丢失 System.out.println(0.09 +

19、0.01);System.out.println(1.0 - 0.32);System.out.println(1.015 * 100);System.out.println(1.301 / 100);public BigDecimal(double val) 查看API的解释,说其有不可预知性。而字符串参数的是结果可预知的。 19 BigDecimal类成员方法l public BigDecimal add(BigDecimal augend)l public BigDecimal subtract(BigDecimal subtrahend)l public BigDecimal mult

20、iply(BigDecimal multiplicand)l public BigDecimal divide(BigDecimal divisor)l public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode)BigDecimal bd1 = new BigDecimal(0.09);BigDecimal bd2 = new BigDecimal(0.01);System.out.println(bd1.add(bd2);BigDecimal bd3 = new BigDecimal(1.0);BigDecimal bd4 = new BigDecimal(0.32);System.out.println(bd3.subtract(bd4);BigDecimal bd5 = new BigDecimal(1.015);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论