不要在foreach循环里进行元素的remove/add操作。 remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。 正例 List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); Iterator<String> iterator = list.iterator(); while (iterator.has
AOP(概念) 1、什么是AOP? (1)面向切面编程(方面),利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各个部分之间耦合度降低,提高程序的可重用性,同时提高了开发效率。 (2)通俗描述,不通过修改代码的方式,在主干功能上添加新的功能。 (3)登陆为例子进行说明 2、AOP底层逻
集合(续) 集合间的操作 集合提供了如取并集,删交集,判断包含子集等操作 package collection; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; /** * 集合间的操作 */ public class CollectionDemo4 { public static void main(Stri
差分约束 例题:P5960 【模板】差分约束算法 给出一组包含 \(m\) 个不等式,有 \(n\) 个未知数的形如: \[\begin{cases} x_{c_1}-x_{c'_1}\leq y_1 \\x_{c_2}-x_{c'_2} \leq y_2 \\ \cdots\\ x_{c_m} - x_{c'_m}\leq y_m\end{cases} \]的不等式组,求任意一组满足这个不等式组的解。 对于
工作记录 1. 打开vs2022 创建新项目 -》选择动态链接库 (输入项目名,创建项目) 2. 添加 .cpp 文件(源文件---》添加---》新建项---》c++文件) #include "pch.h" #include "MydllAdd.h" int my_dll_add(int a, int b) { return a + b; } 3. 添加 .h 文件(头文件---》添
Vue开发过程中的一些方便的操作 vue devtools devtools是安装在浏览器上的一个插件,开发过程中可以直接在浏览器控制台审查和调试vue应用 安装方法,演示在chrome浏览器上的操作,edge操作是一样 打开vue-devtools项目地址 使用git clone命令将项目拉取到本地 注意:clone下来的项目是
原题链接 https://atcoder.jp/contests/arc142/tasks/arc142_d 对我来说,这是一道很复杂的 \(dp\) 题,很考验基本功,也十分考验分析问题的准确性。 考场上我的大致思路已经大差不差了,但是 \(dp\) 转移的细节实在是过于冗杂,导致我经过了一个月才把这道题目搞定,其中经历了各种没有考虑
上传一个项目到Github上: 1. 在Github上建一个空的repository仓库,没有任何文件。比如:“WriteNumber”,之后会有如下提示: 以上信息告诉我们可以从这个仓库克隆出新的仓库,也可以把本地仓库的内容推送到GitHub仓库。 2. 进入本地要上传的项目目录。cd WriteNumber 3. 执行下面的命
算法思路:使用深度优先遍历遍历整张图,如果发现某个顶点已经染过色,并且和相邻顶点的颜色相同,则返回false,否则一直染下去,直到遍历完整张图。 代码实现: #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 100010, M = 2 * N; int h
Add a node at linked list end #include <stdio.h> #include <stdlib.h> //malloc typedef struct node{ int data; struct node* next; }*list; list add_node_end(list ptr,int data) { list temp = (list*)malloc(sizeof(list)); temp ->
最近在做Fourier Transform的内容,顺手记录一下一个下午的成果。 图像代码部分原理很简单,就是极坐标参数方程的转化。 原视频:https://www.youtube.com/watch?v=spUNpyF58BY&t=188s bilibili: https://www.bilibili.com/video/BV1pW411J7s8?share_source=copy_web 数学公式在geogeb
题目传送门:https://www.luogu.com.cn/problem/P2024 一般的并查集只能用来解决”亲戚的亲戚是亲戚“这类问题,但是如果关系变得复杂就不好解决。 比如”敌人的敌人是朋友“这类的问题,很明显普通的并查集无法解决,这个时候我们就要用到普通并查集的进阶版——种类并查集。 一般的
一、Set的使用 ![](https://img2022.cnblogs.com/blog/2901531/202206/2901531-20220618190756446-365574859.png) 点击查看代码 @Test public void test7(){ HashSet set = new HashSet(); set.add(456); set.add(123); set.add(123);
namespace ConsoleApp0//科大讯飞语音转写接口调用 { class Program { static string appId = "******"; static string appKey = "*********************";//SecretKey static void Main(string[] args) {
1 public class DiGui { 2 public static void main(String[] args) { 3 DiGui diGui = new DiGui(); 4 System.out.println(diGui.add(1)); 5 public int add(int sum){ 6 if(sum == 100){ 7 return 100
一、collection接口 1.collection常用方法 点击查看代码 @Test public void test(){ //contains() Collection coll = new ArrayList(); coll.add(123); coll.add(456); coll.add(new String("Tom")); coll.add(false);
so simple for this problem, but when I review it ,there are sill some main points which should be noticed. 1. dummy 2. carray. 3. after while l1,l2 != nulll or carry=0 4. public ListNode addTwoNumbers(ListNode l1,ListNdoe l2){ ListNode dummy
class Solution { public ListNode oddEvenList(ListNode head) { if(head==null) return null; ListNode odd=head,even=head.next,evenHead=even; while(even!=null&&even.next!=null){
class Solution { public ListNode oddEvenList(ListNode head) { if(head==null) return null; ListNode odd=head,even=head.next,evenHead=even; while(even!=null&&even.next!=null){ odd.
学习前端之前,先到廖雪峰老师网站学习一下Git 目录Git简介Git诞生集中式vs分布式创建版本库版本回退工作区和暂存区管理修改撤销修改删除文件 Git简介 Git诞生 Linux坚定反对使用CVS和SVN,这些集中式的版本控制系统. Linus花了两周时间用C写了一个分布式版本管理系统,用于Linux
泛型:? extends T 与 ? super T java的一个设计理念是,与泛型相关的异常最好是在编译期间就被发现,因此设计了extends与super这两种方式。 具体来说,List<? extends T>表示该集合中存在的都是类型T的子类,包括T自己。 而List<? super T>表示该集合中存的都是类型T的父类,包括T自己
Collection体系: 集合的概念:对象的容器,定义了对多个对象进行操作的常用方法,可实现数组的功能。 和数组的区别:①数组长度固定,集合长度不固定 ②数组可以存储基本类型和引用类型,而集合只能存储引用类型。 Collection接口的使用:①添加元素--add()
1、动态库和静态库对比 静态库在文件中静态展开,所以有多少文件就展开多少次,非常吃内存,100M展开100次,就是1G,但是这样的好处就是静态加载的速度快 使用动态库会将动态库加载到内存,10个文件也只需要加载一次,然后这些文件用到库的时候临时去加载,速度慢一些,但是很省内存 动态库和静态库
一、什么是镜像 镜像可以看成是由多个镜像层叠加起来的一个文件系统(通过UnionFS与AUFS文件联合系统实现),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加。 根据上图,镜像层的主要组成部分包括镜像层 ID、镜像层指针 「指向父层」、元数据「 Layer
1. ArrowHelper 用于在Three.js场景中添加一个箭头对象,用于模拟方向的三维维箭头对象.其代码定义如下: var origin = new THREE.Vector3(0, 0, 0); var xDir = new THREE.Vector3(1, 0, 0); var length = 1; var arrow = new THREE.ArrowHelper(xDir, origin, length, color); var