(1) Arrays.toString(); //返回数组的字符串形式
(2) Arrays.sort(); //排序(自然排序 和 定制排序)
顺序可以直接用sort排序,逆序见下面的两种排序方法
//1. 因为数组是引用类型,所以通过sort排序后,会直接影响到实参(即进行排序的数组)
//2. sort方法是重载的,也可以通过传入一个接口 Comparator 实现定制排序
Arrays.sort(a,num1,num2);
–> Integer型数组名,num1 起始索引值;num2终止索引值,并且num2不能取到。
–>[num1,num2)
(3)Arrays.binarySearch(int[] a,int key); //参数:a - 要搜索的数组,key - 要搜索的值
//使用二进制搜索算法在指定的整数数组中搜索指定的值。
//注意!:在进行此调用之前,必须对数组进行排序(如通过sort(int[])方法)。
//如果数组中不存在该元素,就返回一个负数: return -(low + 1);
(low即是该元素应该出现的索引位置)
(4)Arrays.copyOf(int[] original, int newLength );
//从 original 数组中 拷贝 newLength 个元素到 新的数组中
//参数:original – 要复制的数组
newLength – 要返回的副本的长度
(5)Arrays.fill(int[] a, int val); //数组元素的填充
//将指定的 int 值分配给指定的 int 数组的每个元素。
//参数:a - 要填充的数组 val – 要存储在数组所有元素中的值
(6)Arrays.equals(); //如果两个指定的 int 数组彼此相等,则返回true 。
(7)Arrays.asList( ); //会将输入的数据转成一个List集合
例如:List list = Arrays.asList(3,6,888,99);
" 快速幂" && “素数筛法” 见后文的 --> Algorithm
ArrayList
list.add(2);
list.add(0);
list.add(5);
Collection工具类的使用
reverse(List):反转 List 中元素的顺序
shuffle(List):对 List 集合元素进行随机排序
sort(List):根据元素的自然顺序对指定 List 集合元素升序排序
sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换
Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
Object max(Collection,Comparator):根据 Comparator 指定的顺序,返回给定集合中的最大元素
Object min(Collection)
Object min(Collection,Comparator)
int frequency(Collection,Object):返回指定集合中指定元素的出现次数
void copy(List dest,List src):将src中的内容复制到dest中
boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换 List 对象的所旧值
Java Pattern类和Matcher类的使用_javapattern和matcher_捣蛋孩学编程的博客-CSDN博客
//如果题目要进行转化的进制在2~36之间的话直接调用库函数就行了。
Strings=in.readLine();
inta=Integer.parseInt(s,16)
//将16进制的字符串转化十进制数//
BigIntegera=newBigInteger(s,16);
//高精度数out.write(Integer.toString(a,8));
//转化为8进制输出//out.write(a.toString(8));
out.flush();
快速幂的思想是:
①把指数想象成二进制的表示方式;
②如果指数不等于0,则判断最后一位是否为1(&),如果是,则用结果变量result 乘 底数 并取模(根据题意设定模的大小),否则不能乘,因为0 * result = 0;
③每进行一次,底数 = 底数 * 底数 % 模 (将指数表示为二进制之后,底数应该对应每次的指数),
即 a的1次 a的2次 a的4次 a的8次 (同底数相乘,指数相加,正好对应二进制的每一位),
例如:20的3次方(3的二进制为11)= 20的(2的1次方)次方 * 20的(2的0次方)次方;
④将指数往右边移动一位,方便进行下一次的判断
⑤其实到这里,快速幂的思想分析已然结束,但是格外的取模操作让人感到不太理解(不考虑数据溢出的情况下可以不取模),为什么每次都可以取模?其实只要是乘法,不论何时取模都是一样的,可以参考 以下公式:
例如:(a * b)% c = (a % c) * (b % c); --> (5 * 6) % 4 = ( 5 % 4) * (6 % 4) = 2