上次完成了MVPtree之后,客户又提出了MVPtree点集元素重复的问题,希望我将元素去重. 集合去重哪家强?java.util找HashSet!如果不计较元素顺序,放进去基本就没有重复元素了. 只是这样的话就要重写equals()和hashCode()函数(方法).因为equals()默认是比较指针(引用)的,2个不同时间new的元素指针不同,就算内部元素相同也会被判定为不同,一定要重写.hashCode()更加难搞,如果没有写好,hash数组会出现只有少数数组下标占有数据的情况,那样has…
Java HashSet对txt文本内容去重(统计小说用过的字或字数) 基本思路: 1.字节流读需要去重的txt文本.(展示demo为当前workspace下名为utf-8.txt的文本) 2.对读取到的单个字节判断 (1)如果为字母或特殊字符.操作(2) (2)添加到HashSet中,如果HashSet.add()返回true代表该字符添加到HashSet失败,即字符未出现过,故对其做写操作.(展示demo写到的是当前workspace下的u.txt) (3)如果为中文字符,根据txt文本编码…
dnspod-sr内网轻量级DNS首选方案 - 运维生存时间 undefined…
内网技巧-通过SAM数据库获得本地用户hash的方法 在windows上的C:\Windows\System32\config目录保存着当前用户的密码hash.我们可以使用相关手段获取该hash. 提取的时候需要管理员权限,普通权限没办法提取出来 方案一 secretsdump.py 利用工具 https://github.com/SecureAuthCorp/impacket/blob/master/examples/secretsdump.py #!/usr/bin/env python f…
项目需要,需要把MVPtree这种冷门的数据结构写入Java,然网上没有成形的Java实现,虽说C++看惯了不过对C++实现复杂结构也是看得蒙蔽,幸好客户给了个github上job什么的人用Java写的VPtree,大体结构可以嵌入MVPtree. 对于MVPtree的其他信息请左转百度= =本文只讲述算法实现. 点查找树结构主要需解决的问题有2个:如何减少非必要点的搜索,以及如何减少距离计算次数.前者的解决方法比较容易想到,把点集分割为左右对称的两半长方形,或者脑洞大点的,通过距离切分(效率很…
引言: 最近在处理一个问题,大致是这个样子,从数据库里面取出一个集合,取出来的数据放到一个JavaBean里面.结果得到的集合长度为1. TreeSetSet的一个实现,默认实现排序:故TreeSet的泛型类型必须是Comparable或者Comparator.TreeSet基于TreeMap实现. 实例 public class Person implements Comparable<Person>{ private String name; private int order; publ…
01.使用两个for循环实现List去重(有序) /**使用两个for循环实现List去重(有序)     *     * @param list     * */    public static List removeDuplicationBy2For(List<Integer> list) {        for (int i=0;i<list.size();i++)        {            for (int j=i+1;j<list.size();j++)…
jsp2 表达式语言的内置对象 使用方式${object.attributename} 或者${object["attributename"]} pageContext pageScope requestScope sessionScope applicationScope param 用于获取请求的参数值 paramValues 与param的区别是它获取的是数组类型的属性值 header 用于获取请求头的值 headerValues initParam 用于获取请求web应用的初始…
1.Java 的内存模型 定义了 happens-before,如果同一个线程中,字节码的先后顺序,后者观测了前者的运行结果,那么就会按顺序执行. Java 线程之间的通信由 Java 内存模型控制. Java 内存模型通过定义了一系列的 happens-before 操作,不同线程的操作之间的内存可见性. happens-before 关系还具备传递性. 解决数据竞争问题的关键在于构造一个跨线程的 happens-before 关系,操作A happens-before 操作B,是的操作A 之…
Java基础知识篇 面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用面向过程开发,性能是最重要的因素. 缺点:没有面向对象易维护.易复用.易扩展 面向对象: 优点:易维护.易复用.易扩展,由于面向对象有封装.继承.多态性的特性,可以设计出低耦合的系统,使系统更加灵活.更加易于维护 缺点:性能比面向过程低 Java语言有哪些特点? 1,简单易学:2,面向对象(封装,继承,多态):3…