1.Arrays数组工具类,用来方便的去操作数组
成员方法:
public static String toString(int[] a) :打印数组元素的方法
public static void sort(int[] a):数组排序,默认是从小到大排序,如果要从大到小排序,则需要加一个比较器`Arrays.sort(arr,new Comparator() {
@Override
//比较的方法
public int compare(Integer a, Integer b) {
// TODO Auto-generated method stub
return -(a-b);//跟据这个两个元素比较的差值的正负 ,去决定元素的排列顺序
}
});`
public static int binarySearch(int[] a,int key):二分查找:前提 数组元素必须有序,才能二分查找
2.冒泡排序
import java.util.Arrays;
public class MyTest {
public static void main(String[] args) {
// 数组之冒泡排序:两两比较
int[] arr = { 20, 5, 90, 100, 60, 45 };
for (int i = 0; i < arr.length - 1; i++)
for (int j = 0; j < arr.length - 1-i; j++) {
if (arr[j] > arr[j + 1]) {
int t;
t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
System.out.println(Arrays.toString(arr));
}
3.选择排序
import java.util.Arrays;
public class MyTest2 {
public static void main(String[] args) {
// 选择排序:拿1个元素跟剩余的元素挨个去比较
int[] arr = { 20, 5, 90, 100, 60, 45 };
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
// 值交换
int t;
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
4.包装类
Java为了我们方便的去操作这些基本数据类型,给我们提供了与之对应的包装类型
byte Byte short Short int Integer
long Long float Float double Double
char Character boolean Boolean
Integer常用的构造方法
B:构造方法
public Integer(int value)
public Integer(String s)
String与int类型的相互转换
int转化成String类型:调用String的valueOf()方法
String转化成int类型:用int的包装类integer中的ParseInt()方法
Integer 重写了equals方法,比较的是值是否相等
在方法区里面,存在一个字节常量池,如果这个值超过了一个字节的范围,他会重新在堆内存new一个空间
true 没有超过一个字节的范围 因为在方法区中存在一个 字节常量池 范围-128—127
—————————————————————————————————————
static String toBinaryString(int i)
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
static String toHexString(int i)
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
static String toOctalString(int i)
以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
—————————————————————————————————————–
5. 正则表达式:正确规则的表达式,通常用来做一些数据的校验
正则表达式:是一个独立的技术,很多语言都支持他
正确规则的表达式,用来校验数据是否满足我们自己定义的规则
String regx=”[abc]”;//允许出现a,b,c中的任意一个
regx=”[123ABCabc]”;//允许出现1,2,3中任意一个
regx=”[^123]”;//除了123其他都可以
regx=”[0-9]”;
regx=”[a-z]”;
regx=”[A-Z]”;
regx=”[0-9a-zA-Z]”;
regx=”.”;//匹配任意单个字符
regx=”\.”;//我想让.代表这个.本身 需要对点进行转意
regx=”\d”;//表示[0-9]
regx=”\w”;//表示 [a-z_A-Z]
regx=”a?b?”;//一次或一次也没有 “”空串就代表0次
regx=”a*”;//零次或多次 大于等于1次 都算多次
regx=”a+”;//至少一次,或多次
regx=”\w+”;
regx=”[0-9]{5}”;//正好出现几次
regx=”[a-z]{5,}”;//至少5次
regx=”[a-zA-Z0-9]{6,18}”;//表示6到18
A:Pattern和Matcher的概述
Pattern 模式器 用来封装正则表达式
Matcher 匹配器 用来匹配正则表达式
把一个正则表达式封装进模式器里面
Pattern p = Pattern.compile(“a*b”);
通过模式器,获取匹配器,并传入需要匹配的字符串
Matcher m = p.matcher(“aaaaab”);
调用匹配器中的方法,进行匹配
boolean b = m.matches();
Matcher 匹配器中的两个方法
boolean find() 查找是否有符合正则的字符串
String group() 获取到符合正则的字符串
6. Math类和random类
Math.PI //圆周率 Math.E //自然指数 Math.abs(-1) //取绝对值
Math.max(a,b) //求最大值 Math.min(a,b) //求最小值
Math.ceil(3.14) //向上取整 Math.floor(3.14) //向下取整
Math.round(3.14) //四舍五入 Math.random() //取随机整数0-1
Math.pow(a, b) // 求a的b次方
random类的实例用于生成随机数据
Random()
创建一个新的随机数生成器。
Random(long seed)
使用单个 long 种子创建一个新的随机数生成器。
public Random()没有给定种子,使用的是默认的(当前系统的毫秒值)
如果传了种子,那么生成的随机数每次都是固定的
如果不传,每次都是不一样的随机数
boolean nextBoolean() 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。
double nextDouble() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。
int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。