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

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

// 基础输入
import java.util.*;public class Main{public static void main(String[] args){}
}// 非静态方法调用
new Main.Solution();//static函数里面调用非static函数 类.函数
// 更快的输入方式 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;}}
}

输入

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

输出

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

scan.hasNext();
...hasNextInt();
...hasNextLine();
...next();
...nextInt;
...nextLine();

保留小数位数的方法

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

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

Random

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

数组

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

System

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

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

LinkedList

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

HashMap

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

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

String

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

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

算法题好用并且快

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

ArrayList

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 栈 双端队列

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 队列

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 优先队列

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

排序

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

位运算

(~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) // 判断是否超界

简单算法实现

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

包装类

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

Iterator 迭代器

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

Math

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 比较器

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 超大数

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

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

CountDownLatch

//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 定时器

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.mzph.cn/pingmian/6926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js监听页面的显示和隐藏

下方微信公众号 和微信小程序推荐 js监听页面的显示和隐藏 在JavaScript中&#xff0c;监听页面的显示和隐藏可以通过监听visibilitychange事件来实现。visibilitychange事件会在页面的可见性发生变化时触发。 以下是一个简单的示例&#xff0c;演示如何使用visibilitychan…

《面向对象程序设计及C++》实验报告

《面向对象程序设计及C》实验报告 一、实验目的与实验要求 &#xff08;1&#xff09;掌握类的定义、类中成员函数的定义和使用、构造函数和析构函数的定义、功能&#xff1b;掌握对象的使用方法。 &#xff08;2&#xff09;掌握静态数据成员、静态成员函数的功能和使用方法…

Linux —— 信号初识

Linux —— 信号初识 什么是信号测试几个信号signal函数函数原型参数说明返回值注意事项示例 后台程序前台转后台检测输入中断向量表 我们今天来继续学习Linux的内容&#xff0c;今天我们要了解的是Linux操作系统中的信号&#xff1a; 什么是信号 信号是操作系统内核与进程之…

判断dll/lib是32/64位、查看lib是导入库/静态库的方法 、查看dll包含的符合、lib包含的函数

一、判断dll/lib是32/64位 原文链接&#xff1a;https://www.cnblogs.com/bandaoyu/p/16752602.html 1. 简便方法&#xff1a; 直接用记事本或者notepad(或txt文本)打开exe文件&#xff08;dll文件&#xff09;&#xff0c;会有很多乱码&#xff0c;不要头疼&#xff0c;接下…

Vitis HLS 学习笔记--Schedule Viewer 调度查看器

目录 1. 简介 2. Schedule Viewer详解 2.1 视图说明 2.1.1 Operation\Control Step 2.1.2 周期关系图 2.1.3 Schedule Viewer 菜单栏 2.1.4 属性视图 2.2 内容说明 2.2.1 实参&#xff08;b&#xff09;解释 2.2.2 实参&#xff08;a&#xff09;解释 2.2.3 变量&am…

Windows如何安装hadoop

Hadoop是一个开源的分布式计算平台&#xff0c;旨在处理大规模数据的存储和处理。它提供了分布式文件系统&#xff08;HDFS&#xff09;和分布式计算框架&#xff08;MapReduce&#xff09;&#xff0c;使得用户能够在大规模集群上存储和处理数据。Hadoop最初由Apache软件基金会…

cmake进阶:定义函数的使用方法

一. 简介 前面已经将 cmake 中常用的命令 command、变量 variable 都给大家进行了详细介绍&#xff0c;通过前面的学习&#xff0c;相信大家已经掌握了 cmake 工具的基本使用方法&#xff1b; 接下来我们再进一步学习 cmake&#xff0c;本文开始学习 cmake中定义函数。 二. …

TypeScript学习日志-第十九天(namespace命名空间)

namespace命名空间 一、基本用法 namespace 所有的变量以及方法必须要导出才能访问&#xff0c;如图&#xff1a; 二、 嵌套 namespace 可以进行嵌套使用&#xff0c;如图&#xff1a; 它也必须需要导出才能访问 三、合并 当我们出现两个同名的 namespace 它就会合并这两…

EFDC模型安装及建模方法;在排污口论证、水质模拟、地表水环评、地表水水源地划分、水环境容量计算等领域中的应用

目录 专题一 EFDC软件安装 专题二 EFDC模型讲解 专题三 一维河流模拟实操 专题四 建模前处理 专题五 EFDC网格剖分介绍 专题六 EFDC二维湖库水动力模拟/非保守染色剂模拟 专题七 EFDC水质模型参数及原理介绍 专题八 EFDC一、二、三维湖库水质模拟 专题九 基于EFDC的地…

nodejs的ws+vue3编写聊天室的demo

nodejs编写ws服务是非常简单高效的&#xff0c;nodejs有众多的实现ws的库&#xff0c;如ws,SocketIO等&#xff0c;nodejs的事件线程是单线程的&#xff0c;所以不要在事件线程内做阻塞性的操作&#xff0c;耗时的操作交给工作线程或者子进程操作。 我使用nodejsvue3实现了写了…

408数据结构-二叉树的遍历 自学知识点整理

前置知识&#xff1a;二叉树的概念、性质与存储结构 二叉树的遍历 二叉树的遍历是指按某条搜索路径访问树中每个结点&#xff0c;使得每个结点均被访问一次&#xff0c;而且仅被访问一次。 二叉树的递归特性: ①要么是棵空二叉树&#xff1b; ②要么就是由“根节点左子树右子树…

【NOI】C++程序结构入门之分支结构二

文章目录 前言一、逻辑运算符1.导入2.逻辑与&#xff08;&&&#xff09;3.逻辑或&#xff08;||&#xff09;4.逻辑非&#xff08;!&#xff09; 二、例题讲解问题&#xff1a;1656. 是两位的偶数吗问题&#xff1a;1658. 游乐设施问题&#xff1a;1659. 是否含有数字5…

AI绘画:Stable Diffusion 拒绝一眼塑料味的AI质感,超写实人物图片如何制作?简单几步教会你!

今天给大家介绍一款能够对生成的人像进行皮肤调节的 lora。 上面两幅图片的生成参数一样&#xff0c;尺寸也一样&#xff0c;但右边一幅图片相较于左面图片的画面质感&#xff0c;特别是人像皮肤的质感上有很大的提升&#xff0c;看上去更加细腻有层感。 这就是我们今天要介绍…

linux下的调试工具gdb的详细使用介绍

在之前学习中我们使用的通常是集各种功能于一体的编译器&#xff0c;例如VS stdio&#xff0c;但是一个程序在编辑后还要进行编译&#xff0c;然后才能产生一个二进制的可执行文件&#xff0c;编辑和翻译工作都可以使用不同的软件进行&#xff0c;例如记事本就是一款编辑软件&a…

03.配置监控一台服务器主机

配置监控一台服务器主机 安装zabbix-agent rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.11-1.el7.x86_64.rpm配置zabbix-agent,配置的IP地址是zabbix-server的地址&#xff0c;因为要监控这台主机 vim /etc/zabbix/zab…

免费开源线上线下交友社交圈子系统 小程序+APP+H5 可支持二开!

为什么要玩社交软件&#xff1a;互联网社交软件的独特优势 首先&#xff0c;社交软件为我们提供了一个便捷的沟通方式。在传统的交往方式中&#xff0c;人们需要面对面交流&#xff0c;这种方式在时间和空间上都受到限制。而社交软件打破了这些限制&#xff0c;无论我们身处何地…

既能自动仿写公众号爆文,还能批量帮你上架闲鱼商品,打造自己的数字员工,简直yyds

「想象一下&#xff0c;如果有一个机器人在你的计算机上24小时不间断地工作&#xff0c;会不会做梦都笑着」 一、RPA机器人是什么&#xff1f; RPA——机器人流程自动化&#xff0c;它可以帮助人们完成重复性的、繁琐的工作&#xff0c;比如数据输入、网页爬取、自动化流程等…

llama3 史上最强开源大模型,赶超GTP-4,逼宫OpenAI

2024年4月18日&#xff0c;Meta公司推出了开源大语言模型Llama系列的最新产品—Llama 3&#xff0c;包含了80亿参数的Llama 3 8B和700亿参数的Llama 3 70B两个版本。Meta称其为“迄今为止最强的开源大模型”。 怪兽级性能 LLaMA3 提供了不同参数规模的版本&#xff0c;以适应…

你真的知道Show Master Status吗?

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 你真的知道Show Master Status吗&#xff1f; 前言输出字段展示file详解Position详解Binlog_Do_DBBinlog_Ignore_DBExecuted_Gtid_Set 前言 在数据库的世界里&#xff0c;每一个字段都像是一个谜团&a…

微服务---gateway网关

目录 gateway作用 gateway使用 添加依赖 配置yml文件 自定义过滤器 nacos上的gateway的配置文件 我们现在知道了通过nacos注册服务&#xff0c;通过feign实现服务间接口的调用&#xff0c;那对于不同权限的用户访问同一个接口&#xff0c;我们怎么知道他是否具有访问的权…