EatingSoilLang
码龄4年
  • 76,280
    被访问
  • 39
    原创
  • 371,186
    排名
  • 26
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2017-12-19
博客简介:

EatingSoilLang

查看详细资料
  • 3
    领奖
    总分 353 当月 22
个人成就
  • 获得98次点赞
  • 内容获得20次评论
  • 获得353次收藏
创作历程
  • 2篇
    2021年
  • 40篇
    2020年
成就勋章
TA的专栏
  • java排序算法
    6篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

根据集合元素的某个属性去重

/** * 根据指定属性去重 */ private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) { Map<Object, Boolean> seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbs...
原创
发布博客 2021.08.12 ·
147 阅读 ·
0 点赞 ·
0 评论

Java删除Map中元素java.util.ConcurrentModificationException”异常解决

今天在使用map并需要根据某些条件删除map元素时,自然而然想到调用Map中的remove(Object key)函数进行删除,代码如下://遍历map,如果key<5,那么就删除此元素。Map<Integer, Integer> users = new LinkedHashMap<Integer, Integer>();for (Map.Entry<Integer,Integer> entry : users.entrySet()){ for (
原创
发布博客 2021.01.26 ·
314 阅读 ·
2 点赞 ·
1 评论

解决多条定时任务同时执行造成系统阻塞的问题

普通的定时任务,会一个一个执行,当同一时间有多个定时任务启动并且含有数据量比较大的任务时,会阻塞其他的定时任务,这样会产生一系列的问题;解决办法:将定时任务放入线程池。配置如下:1、添加全局@EnableAsync 注解,开启对异步的支持@EnableAsync //开启对异步的支持@Componentpublic class sopServiceRecoveryController {}2、添加@Async 注解,将该定时任务设置成异步执行 @Async("executor1")
原创
发布博客 2020.12.22 ·
964 阅读 ·
3 点赞 ·
0 评论

java实现快速排序算法

快速排序1、算法思想快速排序是由冒泡排序改进而得到的,是一种分区交换排序方法。思想如下:一趟快速排序采用从两头向中间扫描的方法,同时交换与基准记录逆序的记录。(1)在待排序的N个记录中任取一个元素(通常取第一个记录)作为基准,称为基准记录;(2)定义两个索引 left 和 right 分别表示“首索引” 和 “尾索引”,key 表示“基准值”;(3)首先,尾索引向前扫描,直到找到比基准值小的记录(left != righ),并替换首索引对应的值;(4)然后,首索引向后扫描,直到找到比基准值大于
转载
发布博客 2020.12.18 ·
3786 阅读 ·
4 点赞 ·
2 评论

java实现希尔排序算法

希尔排序1、算法思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。简单插入排序很循规蹈矩,不管数组分布是怎么样的,依然一步一步的对元素进行比较,移动,插入,比如[5,4,3,2,1,0]这种倒序序列,数组末端的0要回到首位置很是费劲,比较和移动元素均需n-1次。而希尔排序在数组中采用跳跃式分组的策略,通过某个增量将数组元素划分为若干组,然后分组进行插入排序,随后逐步缩小增量,继续按
转载
发布博客 2020.12.18 ·
516 阅读 ·
1 点赞 ·
0 评论

java利用二分法进行排序

二分法排序二分法排序是直接插入排序的改进版本,直接插入排序插入到前方集合中时采用的方式是逐个比较,二分法则是采用二分比较,与直接排序算法最大的区别在于查找插入位置时使用的是二分查找的方式,在速度上有一定提升。1、算法思想总共有N个元素,当插入第i个元素时,对前面的0~i-1个元素进行折半,先跟他们中间的那个元素比,如果小,那么再对前一半的元素进行折半,否则对后一半的元素进行折半,知道左<右,然后再把第i个元素前一位于目标位置之间的所有元素后移,再把第i个元素放在目标位置上。举例:例如有个
原创
发布博客 2020.12.18 ·
1906 阅读 ·
3 点赞 ·
1 评论

java实现直接插入排序

直接插入排序1、算法思想将一个记录插入到已排好序的序列中,从而得到一个新的有序序列(将序列的第一个数据看成是一个有序的子序列,然后从第二个记录逐个向该有序的子序列进行有序的插入,直至整个序列有序)重点:使用哨兵,用于临时存储和判断数组边界。2、代码实现 public static void main(String[] args) { int arr[] = {2,1,5,3,6,4,9,8,7}; int temp; for (int i=1
原创
发布博客 2020.12.18 ·
879 阅读 ·
2 点赞 ·
0 评论

java实现选择排序算法

选择排序1、算法思想(1)找到所有数中最小值下标(2)第一趟循环将最小值的下标与第一个位置的数值交换位置,这样每次找到的最小值则固定到第一个(3)第二趟循环从第二个开始继续上边的步骤,因为上一趟已经将最小的找到并放到了第一个的位置,因此第二趟只需从第二个数值开始比较。2.代码实现:public static void selectionSort(int[] nums) { if (nums == null || nums.length < 2) { return
原创
发布博客 2020.12.18 ·
370 阅读 ·
3 点赞 ·
1 评论

java实现冒泡排序算法

冒泡排序1.算法思想:类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。实现步骤:(1)两两比较(第一个数跟第二个数比较,第二个数跟第三个数比较,知道倒数第二个数跟倒数第一个数比较完),如果前者比后者大则交换位置。(2)第一趟最后一个数肯定是最大的数。(3)第二趟将第二大的数移动至倒数第二位。(4)第三趟将第三大的数移动至倒数第三位。(5)因此循环n-1次才能将顺序排好。2.代码实现:private int[] array =
原创
发布博客 2020.12.18 ·
675 阅读 ·
3 点赞 ·
0 评论

EditText保留两位小数

1.在布局文件限定输入的范围 <EditText android:id="@+id/txtDate" android:layout_width="150dp" android:digits="1234567890." android:inputType="number" android:layout_height="wrap_content" />2.在oncreate里添加EditText的监
原创
发布博客 2020.12.18 ·
109 阅读 ·
0 点赞 ·
0 评论

websocket实现群发图片

流程:(群发图片)1.前台获取并连接websocket服务器,上传图片,将流、图片流通过websocket发送至服务器。2.后台搭建websocket服务器,以及消息处理服务,将接收到的图片流转发给所有在线客户端。3.客户端收到服务器转发的图片流,动态添加img标签,将图片在页面上展示。效果:1.未发图片时图片列表为空2.发送图片,在线的客户端都会收到图片消息。实现过程:1.前台代码:(1)html代码<!--发送图片按钮--> <form name="f
原创
发布博客 2020.12.15 ·
887 阅读 ·
1 点赞 ·
0 评论

a标签和js在新的标签页打开图片音频等链接

a标签在a标签中,有个属性target,作用就是控制连接是在什么地方打开的;target的值:1."_blank", 在新标签页打开连接2."_self", 在自身所在页面打开连接(如果连接是在iframe中,则就是在iframe中打开)在JS中打开链接如果在JS中打开链接,window.location.href是在本页面打开,而在新标签页打开则可以使用window.open(“地址”)这种方式来打开页面。...
原创
发布博客 2020.12.15 ·
302 阅读 ·
0 点赞 ·
0 评论

解决浏览器Not allowed to load local resource

浏览器Not allowed to load local resource的解决方法1.问题描述Chrome浏览器出于安全方面的考虑,禁止网页访问本地文件。本人遇到的问题:使用a标签将本地磁盘的文件展示在页面,供用户下载。写法:<div id="file"> <h3>文件列表:</h3> <a href="D:/XXX.txt" download="">点击下载</a></div>浏览器报错:Not al
原创
发布博客 2020.12.14 ·
3455 阅读 ·
3 点赞 ·
0 评论

js中建立websocket连接时传的参数为什么还要.url,我记得直接填写地址就可以了啊。

发布问题 2020.12.02 ·
1 回答

超详细!搭建netty服务器和客户端实现多人聊天。

netty旨在为可维护的高性能、高可扩展性协议服务器和客户端的快速开发提供异步事件驱动的网络应用程序框架和工具。换句话说,Netty是一个NIO客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化并简化了TCP和UDP套接字服务器开发等网络编程。1.引入jar包 <!--netty--> <dependency> <groupId>io.netty</groupId>
原创
发布博客 2020.11.28 ·
374 阅读 ·
0 点赞 ·
0 评论

手动搭建I/O网络通信框架(三):NIO编程模型升级改造聊天室

手动搭建I/O网络通信框架(一):Socket和ServerSocket实现单聊手动搭建I/O网络通信框架(二):BIO编程模型实现群聊在第二节中用BIO编程模型,简单的实现了一个聊天室。但是其最大的问题在解释BIO时就已经说了:ServerSocket接收请求时(accept()方法)、InputStream、OutputStream(输入输出流的读和写)都是阻塞的。还有一个问题就是线程池,线程多了,服务器性能耗不起。线程少了,在聊天室这种场景下,让用户等待连接肯定不可取。今天要说到的NIO编程模型就
原创
发布博客 2020.11.25 ·
79 阅读 ·
0 点赞 ·
0 评论

手动搭建I/O网络通信框架(二):BIO编程模型实现群聊

手动搭建I/O网络通信框架(一):Socket和ServerSocket实现单聊本节:手动搭建I/O网络通信框架(二):BIO编程模型实现群聊所谓BIO,就是Block IO,阻塞式的IO。这个阻塞主要发生在:ServerSocket接收请求时(accept()方法)、InputStream、OutputStream(输入输出流的读和写)都是阻塞的。这个可以在下面代码的调试中发现,比如在客户端接收服务器消息的输入流处打上断点,除非服务器发来消息,不然断点是一直停在这个地方的。也就是说这个线程在这时间是被
原创
发布博客 2020.11.25 ·
73 阅读 ·
0 点赞 ·
0 评论

手动搭建I/O网络通信框架(一):Socket和ServerSocket实现单聊

Socket定义:套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合,可以理解为两台机器或进程间进行网络通信的端点,这个端点包含IP地址和端口号。Socket和ServerSocket区别就如其名字一样,简单地说ServerSocket作用在服务端,用以监听客户端的请求。Socket作用在客户端和服务端,用以发送接收消息。但是就像上
原创
发布博客 2020.11.24 ·
70 阅读 ·
0 点赞 ·
0 评论

将子类对象赋给父类变量 有什么应用场景?

答:

你有没有继承或实现过系统的类或者接口,然后用@Override重写它的某个方法取实现你自己的逻辑,请问你怎么在源码类中进行补充

回答问题 2020.11.20

为什么大人都这么想?

答:

。。。怎么想

回答问题 2020.11.17
加载更多