Java常用命令总结 持续更新中!!!

ops/2024/10/18 18:14:19/

蓝桥杯JAVA组 推荐输入输出示例

java">// 基础输入
import java.util.*;public class Main{public static void main(String[] args){}
}// 非静态方法调用
new Main.Solution();//static函数里面调用非static函数 类.函数
java">// 更快的输入方式 BufferedReader
// 更快的输出方式 PrintWriter+BufferWriter 并且很方便,使用方法和System.out一致
// 注意扔异常
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;public class Main {static boolean[] v;static int[] ns;static int[] bs;static int N;static PrintWriter out;public static void main(String[] args) throws IOException {BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));N = Integer.parseInt(bf.readLine());bs = new int[N + 1];v = new boolean[N + 1];dfs(1);out.flush();}private static void dfs(int x) {if (x > N) {for (int i = 1; i <= N; i++) {out.printf("%5d", bs[i]);}out.println();return;}for (int i = 1; i <= N; i++) {if (v[i])continue;v[i] = true;bs[x] = i;dfs(x + 1);v[i] = false;}}
}

输入

java">Scanner sc = new Scanner(System.in);
sc.hasNext();
sc.next();
sc.nextInt();
sc.nextLine();// 快速输入
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
bf.readLine();
bf.read();// 读取单个字符 返回int

输出

java">System.out.println();StringBuilder sb = new StringBuilder();
StringJoiner sj = new StringJoiner(" ");
// 快速输出
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
out.print(a);
out.println();
out.printf();
out.flush();

基本量范围

int -2的31次方(-2147483648 2*10^9),2的31次方减一(2147483647)

15! = 1.3*10^12

Scanner

java">scan.hasNext();
...hasNextInt();
...hasNextLine();
...next();
...nextInt;
...nextLine();

保留小数位数的方法

java">double res = 0d;
new DecimalFormat("0.00").format(res);System.out.printf("%.3f",res);

输出控制符和对应的数据类型
在这里插入图片描述

Random

java">Random r=new Random();
r.nextInt(a);//[0,a)

数组

java">new int[0][]//空数组
int[] arr4 = arr.clone();// 数组的复制

System

java">System.arraycopy(original, i, ans[i / n], 0, n);// 数组复制
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
代码解释:Object src : 原数组int srcPos : 从元数据的起始位置开始Object dest : 目标数组int destPos : 目标数组的开始起始位置int length : 要copy的数组的长度

Arrays

java">Arrays.sort();// 排序
Arrays.copyOfRange(intersection, 0, index);// 返回复制的数组
Arrays.asList(nums);// 数组转List

LinkedList

java">list.offerLast(key);// 加入到最后
remove(int index);// 移除此列表中指定位置处的元素。
remove(Objec o);// 从此列表中移除首次出现的指定元素(如果存在)。

HashMap

java">Map<Character,Character> map=new HashMap(){{put(')','(');put(']','[');put('}','{');}
};//初始化实例
map.get(key);
map.put(key,num);
map.containsKey(key);map.getOrDefault(key,0);
map.remove(key);for(Map.Entry<String,Object> arg:map.entrySet()){arg.getKey() + arg.getValue();
}// 获取键值对
map.keyset();//返回key的String[]集合 常用于循环
map.values();// 返回map的values集合Object[] a = map.keySet().toArray();
Arrays.sort(a);

HashSet

java">set.add();
set.remove();
set.size();
set.clear();
set.toArrays(); // hashset转数组

String

java">s.trim();//去除前后空格
s.substring(start, start + maxLen)//左闭右开
s.indexOf(ss);//ss可以是整数也可以是字符串 返回指定字符串第一次出现的索引 没有则返回-1也可以从fromIndex开始位置
s.indexOf(ss,fromIndex);
String[] ss = s.split(" ");//字符串按照空格分开
String.valueOf();//其他转成String
String.contains("x");//是否包含
s1.compareTo(s2);//比较两个字符大小,可用于字典序
int a = Integer.parseInt("-1");//string转int

StringBuilder

java">StringBuilder sb=new StringBuilder();
sb.append('(');
sb.deleteCharAt(cur.length()-1);
sb.delete(l,r);
sb.insert(pos,string);
sb.toString();//转换成String
new StringBuilder(s).reverse().toString();//字符串反转

StringJoiner

算法题好用并且快

java">// 每个元素通过 "." 分割,并且用 "[" 和 "]" 包住前后 		
StringJoiner joiner2 = new StringJoiner(".", "[", "]");
// 元素用" "分割
StringJoiner joiner = new StringJoiner(" ");
// 将joner和joner2的元素合并,并且每个元素通过 "." 分割,并且用 "[" 和 "]" 包住前后 
joiner2.merge(joiner);
// 新增代码 类似StringBuilder
joiner.add(node.val + "");
System.err.println(joiner);

ArrayList

java">List<List<Integer>> ans = new ArrayList<List<Integer>>();// 两个List的初始化方式
ans.add(new ArrayList<Integer>(t));//List<Integer> t = new ArrayList<Integer>();
List<Integer> list = new ArrayList();
list.add(i,o) // 向list i 位置插入
list.toArray(new int[list.size()][]);// list转数组
Collections.swap(output, first, i);// 把List两个位置的元素调换
Collections.sort(l1,(a,b)->a.compareTo(b));
Collections.sort(l2,(a,b)->a.compareTo(b));

Deque 栈 双端队列

java">Deque<Integer> d =new LinkedList();
d.isEmpty();// 队列
d.add(e);
d.remove();d.offer(e);
d.poll();d.element();
d.peek();// 栈
d.peek();
d.pop();
d.push();

Queue 队列

java">Queue<String> q = new LinkedList();
q.add(); // 插入队列尾部,队列满抛异常
q.remove();// 移除头返回头,队列空抛异常
q.element();// 返回头,队列空抛异常q.offer();// 插入队列尾部,队列满返回false
q.poll();// 移除头返回头,队列空返回null
q.peek();// 返回头,队列空返回nullq.size();// 返回元素个数
q.isEmpty();// 队列是否为空

Priority Queue 优先队列

java">//优先队列 弹出最左边数
PriorityQueue<ListNode> queue = new PriorityQueue<>(new Comparator<ListNode>() {//比较器 升序@Overridepublic int compare(ListNode o1, ListNode o2) {return o1.val-o2.val;}
});

排序

java">Arrays.Sort();// Integer[] int不支持 但支持char int[][]
Collections.sort();// listArrays.sort(a, 0, n);// 排序int[]Arrays.sort(b,Collections.reverseOrder());// 降序
Collections.sort(l, Collections.reverseOrder());

位运算

java">(~x) = -(x + 1)// 取反	所有位置0变1,1变0
a^a = 0; // 相同数 异或 =0
0^a = a;
n & (n - 1); // 最低位1改为0
n & (-n); // 获取最低位1
1 << n; // 2^n
if (rev < Integer.MIN_VALUE / 10 || rev > Integer.MAX_VALUE / 10) // 判断是否超界

简单算法实现

java">// 欧几里得算法 算最大公约数
public static int gcd(int a, int b) {return a % b == 0 ? b : gcd(b, a % b);
}

包装类

java">Integer.valueOf(s);// String转Integer 
Integer.toString(n);// Integer转StringDouble.compare(a,b);// 比较double大小

Iterator 迭代器

java">用于迭代 ArrayListHashSet 等集合。
Iterator<String> it = sites.iterator();
it.next();
it.hasNext() ;
it.remove()

Math

java">Math.round()// 四舍五入
Math.cos(Math.PI);// 180度的余弦值
Math.random(int l,int r);
Math.log(a);// ln(a)Math.ceil();// 向上取整
Math.floor();// 向下取整
Math.round();// 四舍五入
Math.round(11.5)=12;Math.round(-11.5)=-11;
// 注意java的除法默认去除小数部分

Comparator && Comparable 比较器

java">public interface Comparable<T> {public int compareTo(T o);
}public interface Comparator<T> {public int compare(T lhs, T rhs);
}class Students implements Comparable<Students>{int age;String name;Students(int age,String name){this.age=age; this.name=name;}@Override//重写compareTo方法按Students的年龄排序public int compareTo(Students o) {if (this.age-o.age>0)return 1;if (this.age-o.age<0)return -1;elsereturn 0;}@Overridepublic String toString() {return "Students{" +"age=" + age +", name='" + name + '\'' +'}';}
}public class TsetCompareable {public static void main(String args[]){List<Students> list =new ArrayList();list.add(new Students(10,"zhangsan"));list.add(new Students(18,"lisi"));list.add(new Students(9,"wangwu"));Collections.sort(list);System.out.println(list);}
}class Student {int age;String name;Student(int age,String name){this.age=age; this.name=name;}@Overridepublic String toString() {return "Student{" +"age=" + age +", name='" + name + '\'' +'}';}
}//学生比较器
class StudentComparator implements Comparator<Student>{//重写compare方法@Overridepublic int compare(Student student, Student student1) {if (student.age-student1.age>0)return 1;if (student.age-student1.age<0)return -1;elsereturn 0;}
}public class  ComparatorTest{public static void main(String args[]){List<Student> list =new ArrayList();list.add(new Student(10,"zhangsan"));list.add(new Student(18,"lisi"));list.add(new Student(9,"wangwu"));Collections.sort(list,new StudentComparator());System.out.println(list);}
}

BigInteger 超大数

java">b.toString().equals("0") // 比较
b.mod(b) // 取余
b.add(b) // 相加
b = new BigInteger("1"); // 初始化

运算符优先级

优先级符号
1[] ()
2++ – ~ ! (数据类型)
3* / %
4+ -
5<< >> >>>
6> <= >=
7== !=
8&
9^
10|

Data

java">// 毫秒转时间
long mills = scan.nextLong();
Date date = new Date(mills);
SimpleDateFormat ft = new SimpleDateFormat ("HH:mm:ss");
System.out.println(ft.format(date));
scan.close();
java">Date 有时区
LocalDateTime 自带系统时区

CountDownLatch

java">//countDownLatch 一个线程(或者多个), 等待另外N个线程完成某个事情之后才能执行。
CountDownLatch(int count):count为计数器的初始值(一般需要多少个线程执行,count就设为几)。
countDown(): 每调用一次计数器值-1,直到count被减为0,代表所有线程全部执行完毕。
getCount():获取当前计数器的值。
await(): 等待计数器变为0,即等待所有异步线程执行完毕。
boolean await(long timeout, TimeUnit unit): 此方法与await()区别:
此方法至多会等待指定的时间,超时后会自动唤醒,若 timeout 小于等于零,则不会等待
boolean 类型返回值:若计数器变为零了,则返回 true;若指定的等待时间过去了,则返回 false

Time 定时器

java">public static void main(String[] args) {//testTimer1();//testTimer2();testTimer3();//testTimer4();
}//方法一:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date time)
public static void testTimer1() {Timer timer = new Timer();timer.schedule(new TimerTask() {public void run() {System.out.println("-------任务执行--------");}}, 3500);// 设定指定的时间time为3500毫秒
}/*** 方法二:设定指定任务task在指定延迟delay后间隔指定时间peroid执行* schedule(TimerTask task, long delay, long period)* */
public static void testTimer2() {Timer timer = new Timer();timer.schedule(new TimerTask() {public void run() {System.out.println("-------任务执行--------");}}, 2000, 3500);
}/*** 方法三:设定指定任务task在指定延迟delay后进行固定频率peroid的执行。* scheduleAtFixedRate(TimerTask task, long delay, long period)* */
public static void testTimer3() {Timer timer = new Timer();timer.scheduleAtFixedRate(new TimerTask() {public void run() {System.out.println("-------任务执行--------");}}, 1000, 2000);
}/*** 方法四:安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行.* Timer.scheduleAtFixedRate(TimerTask task,Date firstTime,long period)* */
public static void testTimer4() {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY, 12); // 控制小时calendar.set(Calendar.MINUTE, 0);    // 控制分钟calendar.set(Calendar.SECOND, 0);    // 控制秒Date time = calendar.getTime();    //获取当前系统时间Timer timer = new Timer();timer.scheduleAtFixedRate(new TimerTask() {public void run() {System.out.println("-------任务执行--------");}}, time, 1000 * 60 * 60 * 24);// 这里设定将延时每天固定执行
}// 程序暂停
Thread.sleep(time);

在这里插入图片描述
感谢大家的观看!!!创作不易,如果觉得我写的好的话麻烦点点赞👍支持一下,谢谢!!!


http://www.ppmy.cn/ops/34311.html

相关文章

SpaceX 遭攻击,泄露近150GB数据以及多份图纸

近期&#xff0c;埃隆马斯克 (Elon Musk) 创立的航空航天制造商和太空运输服务公司 SpaceX 称遭遇了网络安全事件&#xff0c;该事件涉及黑客组织Hunters International的数据泄露&#xff0c;据报道该组织发布了 SpaceX 数据泄露的样本。 此次SpaceX 的数据泄露涉及 SpaceX 相…

华为OD机试【求满足条件的最长子串的长度】(java)(100分)

1、题目描述 给定一个字符串&#xff0c;只包含字母和数字&#xff0c;按要求找出字符串中的最长&#xff08;连续&#xff09;子串的长度&#xff0c;字符串本身是其最长的子串&#xff0c;子串要求&#xff1a; 只包含1个字母(a-z, A-Z)&#xff0c;其余必须是数字&#xf…

Day15-JavaWeb开发-Maven高级-分模块设计与开发继承与聚合私服

1. Maven高级-分模块设计与开发 2. Maven高级-继承与聚合 2.1 继承关系实现 2.2 版本锁定 2.3 聚合实现 3. Maven高级-私服 3.1 私服-介绍 3.2 私服-资源上传与下载 4. Web开发-完结

计算机系列之数据库技术

13、数据库技术&#xff08;重点、考点&#xff09; 1、三级模式-两级映像&#xff08;考点&#xff09; 内模式&#xff1a;管理如何存储物理的数据&#xff0c;对应具体物理存储文件。 **模式&#xff1a;**又称为概念模式&#xff0c;就是我们通常使用的基本表&#xff0c…

【动态规划算法】【Python实现】0-1背包

文章目录 [toc]问题描述形式化描述 最优子结构性质递归关系 m ( i , j ) m(i , j) m(i,j)递归方程 Python实现 问题描述 给定 n n n种物品和一背包&#xff0c;物品 i i i的重量是 w i w_{i} wi​&#xff0c;其价值为 v i v_{i} vi​&#xff0c;背包的容量为 c c c如何选择装…

Mysql 行格式 innodb_default_row_format 可以配置那些值, 有什么区别

在MySQL中&#xff0c;innodb_default_row_format选项指定了InnoDB表创建时的默认行格式。这个设置对于新创建的表非常重要&#xff0c;因为它影响了数据的存储方式、空间利用率和性能。innodb_default_row_format可以配置为以下几个值&#xff0c;每个值代表不同的行格式&…

C#核心之面向对象-多态

面向对象-多态 文章目录 1、Vob1、多态的概念2、多态的实现 2、抽象类和抽象方法1、抽象类2、抽象方法 3、接口1、接口的概念2、接口的声明3、接口的使用4、接口可以继承接口5、显示实现接口总结思考 电脑使用USB接口读取数据 4、密封方法 1、Vob 1、多态的概念 多态&#xf…

windows qt sdk 安装

在Windows上安装Qt SDK的步骤如下&#xff1a; 下载Qt SDK安装包&#xff1a; 打开Qt资源下载网站&#xff0c;如http://download.qt.io/。 选择适合您Windows版本和需求的Qt SDK版本进行下载。通常建议选择稳定版本&#xff0c;并确认是否包含所需的组件&#xff0c;如Qt Cre…