第十二天笔记

数组高级应用

选择排序:拿着首个元素与以后的所有元素进行比较 (先确定第一位)

第一轮比较完之后,从第二为开始比较最后一次比较

外层循环控制论内层循环控制次数

public static void sortArr(int[] arr,boolean flag){ for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (flag ? arr[i] > arr[j] : arr[i] < arr[j]) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } System.out.println(Arrays.toString(arr)); } 打印数组:Arrays.toString() 

冒泡:从前往后相邻两个作比较,先确定最后一位

public static void bubbleArr(int[] arr,boolean flag){ for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (flag?arr[j] > arr[j+1] : arr[j] < arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } System.out.println(Arrays.toString(arr)); } 

查找有序的数组中的数:二分查找法(这般查找)

需要事先定义一个最大值,一个最小值,一个中间值

如果我们要找的数,比中间值大,那就让中间值之前作废,因此,让最小值改变为中间的角标+1位置,以此类推,反之相似

public static void binarySearch(int[] arr, int key) { int max = arr.length -1; int min = 0; int middle = (max + min)/2; while (min < max) { if (arr[middle] == key) { System.out.println(middle); return; }else if (key > arr[middle]) { min = middle + 1; }else if (key < arr[middle]) { max = middle - 1; } middle = (min + max) / 2; } System.out.println("不存在此数字"); } 

Arrays

专门操作数组的方法,都为静态(工具类为方便调用)

基本类型包装类

Object 基类 超类 万类之祖

他统治了所有的引用类型 但是就把八大基本类型给抛弃了

后来为了加强帝王的统治 给基本类升成了包装类

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

基本类型包装类:用于基本数据类型与字符串之间的转换

八大基本类型包装类 操作的都是基本类型和基本类型组成的字符串

以int类型为例

构造方法:

Integer(int value)
构造一个新分配的 Integer 对象,它表示指定的 int 值。
Integer(String s)
构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
此处的String中必须全部为数字

JDK1.5以后 java给所有的包装类提供了方便

// 为什么可以运行成功 因为在此处做了自动拆箱操作 i = integer + i; System.out.println(i); // 这种写法就是自动装箱操作 Integer in2 = 100; 

提供了一个叫做自动拆箱操作

出了自动拆箱以外 还有自动装箱

成员方法

int类型和String类型的相互转换
int – String:直接相加空字符串
String – int:public static int parseInt(String s)

Character类概述
Character 类在对象中包装一个基本类型 char 的值
此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然

public Character(char value)

public static boolean isUpperCase(char ch)判断是否为大写

public static boolean isLowerCase(char ch)判断是否为小写

public static boolean isDigit(char ch)判断是否为数字

public static char toUpperCase(char ch)转换为大写

public static char toLowerCase(char ch)转换为小写

常用的基本进制转换

public static String toBinaryString(int i) 转成二进制

public static String toOctalString(int i) 转成八进制

public static String toHexString(int i) 转16进制

十进制到其他进制
public static String toString(int i,int radix) 十进制到任何进制
最低二进制 最高36进制

static String toString(int i)
返回一个表示指定整数的 String 对象。

其他进制到十进制
public static int parseInt(String s,int radix)
第一个参数代表你要转换的数字字符串
第二个参数是告诉系统 你前面的字符串属于什么类型

Math成员方法

public static int abs(int a) 求绝对值

public static double ceil(double a) 向上取整

public static double floor(double a) 向下取整

public static double pow(double a,double b) a的b次方

public static double random() 随机数 0.0 - 1.0

public static int round(float a) 参数为double的自学 四舍五入

public static double sqrt(double a) 平方根

system类

System 类包含一些有用的类字段和方法。它不能被实例化。

成员方法
public static void gc()
调运gc方法之前 你的保证你所要回收的对象处于null引用
垃圾回收机制
finalize()垃圾回收器

public static void exit(int status) 终止当前虚拟机

public static long currentTimeMillis() 当前时间的毫秒值

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

第一个参数:从哪个数组复制

第二个参数:从原数组的第几个索引处开始复制
第三个参数:目标数组
第四个参数:从目标数组的第几个索引开始存储
第五个参数:复制粘贴多少个元素

date类概述
类 Date 表示特定的瞬间,精确到毫秒。

构造方法
public Date()当前时间
public Date(long date) 根据毫秒值判断时间

成员方法
public long getTime() 将Date对象转换为对应的毫秒值
public void setTime(long time)根据毫秒值判断时间,不常用

Date Format类(抽象) 不能调用 但可以用他的子类 SimpleDateFormat

SimpleDateFormat构造方法

public SimpleDateFormat()
public SimpleDateFormat(String pattern)传一个格式 然后将时间转换为该格式

成员方法
public final String format(Date date) 将Date对象转换为字符串
public Date parse(String source) 将字符串转为Date对象

格式的具体表示

d 月中的某一天。一位数的日期没有前导零。

dd 月中的某一天。一位数的日期有一个前导零。

ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。

dddd 周中某天的完整名称,在 DayNames 中定义。

M 月份数字。一位数的月份没有前导零。

MM 月份数字。一位数的月份有一个前导零。

MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。

MMMM 月份的完整名称,在 MonthNames 中定义。

y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。

yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。

yyyy 包括纪元的四位数的年份。

gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。

h 12 小时制的小时。一位数的小时数没有前导零。

hh 12 小时制的小时。一位数的小时数有前导零。

H 24 小时制的小时。一位数的小时数没有前导零。

HH 24 小时制的小时。一位数的小时数有前导零。

m 分钟。一位数的分钟数没有前导零。

mm 分钟。一位数的分钟数有一个前导零。

s 秒。一位数的秒数没有前导零。

ss 秒。一位数的秒数有一个前导零。

f 秒的小数精度为一位。其余数字被截断。

ff 秒的小数精度为两位。其余数字被截断。

fff 秒的小数精度为三位。其余数字被截断。

ffff 秒的小数精度为四位。其余数字被截断。

fffff 秒的小数精度为五位。其余数字被截断。

ffffff 秒的小数精度为六位。其余数字被截断。

fffffff 秒的小数精度为七位。其余数字被截断。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值