- 博客(21)
- 收藏
- 关注
原创 Java使用unmodifiableCollection保证Collection不被改变
Collections类 Collections.unmodifiableCollection/List/Set/Map(Collection c) 返回一个内部类UnmodifiableCollection(此时无法进行下转型,内部类的变量c才是真实的引用,使用相关方法unmodifiableCollection/List/Set/Map) final Collection<? extends E> c; //c为控制的集合,内部类的所有方法都使用c的相同方法 public boolean a
2020-12-20 12:04:33
446
1
原创 构造器中调用动态绑定的方法
构造器中调用动态绑定的方法 若在构造器中调用动态绑定的方法,不会调用父类的方法,而是优先调用子类中覆盖的绑定方法。 如果此时在方法中使用成员变量可能会造成重大错误。 class Glyph { void draw() { System.out.println("G() in draw"); } Glyph() { System.out.println("G() before draw"); draw(); System
2020-11-29 14:44:15
294
1
原创 一点点core java的笔记-并发
并发 Runnable 函数式接口(只有一个函数 run),可用 lamba建立实例 Thread t = new Thread (()→{... }), t.start () 获取当前线程:Thread. current Thread () 中断线程: 调用 interrupt方法,将线程中断状态改为true。当线程在 sleep or wait状态时,调用interrupt会被interrupt Exception 中断, 要记得在sleep 后 调用thread. interrupt 设中断或
2020-11-18 20:57:06
208
原创 一点点core java的笔记-集合
集合 接口与实现分离: 迭代器: for (... : q) 被翻译为带迭代器的循环。 lamba: it. for Each Remaining (elem-> { }); 泛型实用方法 : 避免开发修改异常:多个只读迭代器,单个读写迭代器。 映射: Hash Map 与 Tree Map counts. put (key , counts. getOrDefa...
2020-11-18 20:54:19
112
原创 一点点core java的笔记-泛型程序设计
泛型程序设计 类型参数: <string>可读性,错误检查,避免强制转换。 定义简单泛型类: E:集合的元素类型 K, V 表关键字与值类型 T, U, S 任意类型 泛型方法: public static <T> T get Middle (T... a) 调用时在方法前的尖括号加上具体类型。 类型变量限定: public static <T extends Comparable> T min ( T... a) 为...
2020-11-18 20:49:20
160
原创 一点点core java的笔记-接口, lambda,内部类
接口, lambda,内部类 接口中所有方法都是 public 接口的特性:接口无法实例化,但可声明变量并引用实现接口的类对象。 可用 instance of 检查对象是否实现了接口。接口可 extends:接口中无实例域/静态方法,但可 包含常量,自动为public static final。 默认方法(default):提供默认方法、使类正常编译、若未编译也不出错。 默认方法冲突:超类中优先、接口与接口冲突必须手动覆盖。 接口与回调:指定特定事件发生时采取的动作。 Comparator 接口
2020-11-18 20:39:08
159
原创 一点点core java的笔记-继承
继承 覆盖方法:子类无法直接访问超类的私有域,需用 super.接口 子类构造器:可用 super ()调用超类的构造器。 动态绑定:对象在运行时自动选择用哪个方法。 多态:一个变量可指示多种实际类型。(不要将起类的引用赋绐子类变量) 方法的调用:(名字与参数称为签名) 列举所有同名方法与超类中的public 方法 重载解析,参数类型匹配。 静态绑定,若为 Private、static、final,可直接知道。 虚拟机为每个类建了一个方法表,从子类→超类找方法。 阻止继承(覆盖): fin
2020-11-18 20:36:06
135
原创 一点点core java的笔记-对象与类
隐式参数:this 显式参数:参数 域访问器:getxxx方法返回可变对象引用使用clone final实例域:构建对象时被初始化,且之后无法修改 static静态域:属于类 静态常量:publicstaticfinalPrintStreamout 工厂方法:静态工厂方法构造对象 main方法:不对任何对象操作,每一个类都可有一个main方法可用于单元测试 方法参数:按值调用(基本数据类、对象引用(仍是调用了变量的拷贝)),按引用调用(Java不用) 对象的重载:...
2020-11-18 20:32:27
135
1
原创 JNI 接口调用 C 方法坑点
在 Java10 及以后删除了javah,应使用以下命令生成头文件。javac -h . %local_path% MinGW 版本要和系统位数相同。 生成 .o 文件 g++ -c -I"%JAVA_HOME%\include" - I"%JAVA_HOME%\include\win32" NativeTest.cpp 生成.dll文件 g++ -Wl,--add-stdcall-alias -shared -o NativeTest.dll NativeTest.o 将生成的dll放入 library.
2020-09-23 08:56:24
177
原创 CF EducationalRound93 E.Two Types of Spells(权值线段树+堆维护最值)
题意 每个魔法都有自己的伤害,魔法1是加倍魔法,可以加倍后一个魔法的伤害,魔法0是普通魔法,给出q个更新,要求每次更新后计算魔法能造成的伤害最大值。 思路 设加倍魔法数量为k,权值线段树每次查询前k大的伤害和sumk(加倍多出来的伤害),mutiset维护魔法1和魔法2的最值,如果魔法1的最小值比魔法0的最大值大或不存在魔法0,sumk就要改变,因为至多加倍k-1个魔法1。 代码 #include<bits/stdc++.h> #define ll long long #define LL lo
2020-08-17 22:14:36
323
原创 hdu6473交通灯(并查集)
1003交通灯 Problem Description 相信交通灯对于你来说并不陌生,交通灯分为红色和绿色两个阶段,这两个阶段互相更替,保障着道路的安全。 在杭州一共有n个路口,编号依次为1到n。这些路口之间连接着m条双向道路,每条道路连接着两个不同的路口,且任意两个路口之间最多连接着一条道路。每条道路中央都设置着一个交通灯。 为了保障道路的安全,对于任意两条道路,如果它们连接了同一个路口,那么它...
2020-08-07 12:18:17
423
原创 Codeforces661 E1. Weights Division(easy version)(贪心+优先队列)
题目链接 思路: 先计算每条边被计算的次数,然后贪心地每次减半能减少最多花费的边,直到小于等于S为止。 代码: #include<bits/stdc++.h> #define ll long long #define LL long long #define PB push_back #define MP make_pair using namespace std; const int maxn=2e5+100; const ll inf=1e18+10; ll n,s,val[maxn],le
2020-08-06 21:14:38
158
原创 2020杭电暑假多校第六场 A Very Easy Graph Problem(换根dp)
题目链接 **题意:**给一个无向图,每个点为0或1,第i条边长度为2的i次方。题目要求出所有点i、j,i为0且j为1,i、j间最短路的和。 **思路:**首先容易看出,若第i条边加入后图中产生了环,由于二进制的特性第i条边必然不能在最短路中,所以转化为树上问题。换根dp维护两个状态,1.每个节点到标记为1的子节点的路径长度和。2.每个节点标记为1的子节点个数。 代码: #include<bits/stdc++.h> #define ll long long #define LL long lo
2020-08-06 21:06:42
175
原创 Codeforces1389E Calendar Ambiguity(数学)
题目链接 题意: 一年有m个月,每月有d天,每周有w天,每年的第一天都是周一,问有多少对x,y(x<y),在x月的y天和y月的x天是一周中的同一天。 思路 x与y的关系公式: (x−1)∗d+y≡(y−1)∗d+x (mod w)(x-1)*d+y\equiv(y-1)*d+x\ (mod\ w)(x−1)∗d+y≡(y−1)∗d+x (mod w) (y−x)∗(d−1)≡0 (mod w)(y-x)*(d-1)\equiv0\ (mod\
2020-08-01 01:57:56
345
原创 2020牛客暑期多校第六场 K-Bag(贪心写法+滑动窗口枚举写法)
题目链接 题意: 定义k-bag为若干长度为k的全排列组成的串,问题目给出的串是否可能为一个k-bag的子串。 贪心思路 设定当前全排列的左右指针,从左向右加点,大致情况分以下几种: 1.尾指针遇到可加入的数,直接加入。 2.当前段满足全排列,进入下一段匹配。 3.尾指针遇到重复的数,此时无法继续向右添加,考虑向左边加数,同时将之前匹配成功的每段全排列向左移动。考虑以下两种情况: 3.1.头指针是否能前移?若左边需添加的数与当前段中的数有重复,则说明该数与当前段重复的数必不在同一段中,则让尾指针回退,直到可
2020-08-01 01:22:46
236
原创 2020杭电暑假多校第四场 1004. Deliver the Cake(最短路+拆点)
Deliver the Cake 题意 给出nm的无向图,从st走向end,图中点分为左中右三种要求,左的点要求经过时状态必须为左,右同理,中则无特殊要求需求,出发时选择一种状态,状态切换需要额外花费x。问最小花费。 思路 易知进入中后,选择的左或右状态具有后效性。直接把中需求的点拆为左右两个点即可。 代码 比赛时候写的太乱了=-=代码以后改。 #include<bits/stdc++.h> #define ll long long #define INF 1e18 using namespac
2020-08-01 00:54:01
169
原创 Codeforces660 D. Captain Flint and Treasure(dfs贪心)
D. Captain Flint and Treasure Captain Fint is involved in another treasure hunt, but have found only one strange problem. The problem may be connected to the treasure’s location or may not. That’s why captain Flint decided to leave the solving the problem
2020-08-01 00:36:48
188
原创 Codeforces660 C. Uncle Bogdan and Country Happiness(dfs模拟)
Uncle Bogdan and Country Happiness Uncle Bogdan is in captain Flint’s crew for a long time and sometimes gets nostalgic for his homeland. Today he told you how his country introduced a happiness index. There are n cities and n−1 undirected roads connecting
2020-08-01 00:27:51
202
原创 Codeforces660 B. Captain Flint and a Long Voyage(思维)
Captain Flint and a Long Voyage Captain Flint and his crew keep heading to a savage shore of Byteland for several months already, drinking rum and telling stories. In such moments uncle Bogdan often remembers his nephew Denis. Today, he has told a story ab
2020-08-01 00:14:58
292
2
原创 南昌网络赛Max Answer
Alice has a magic array. She suggests that the value of a interval is equal to the sum of the values in the interval, multiplied by the smallest value in the interval. Now she is planning to find the ...
2019-05-02 11:41:48
194
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人