Java 集合框架迭代器(Iterator)

什么是迭代器 使用循环遍历集合 普通for循环 for(int i=0;i<10;i++){} 增强for循环 for(String str:list){} 什么是迭代器Iterator Iterator是Java中的一个接口,核心作用就是用来遍历容器的元素,当容器实现了Iterator接口后,可以通过调用Iterator()方法获取一个Iterator对象 为啥是调用容器里面的Iterator方法呢? 因为容器的实现有多种,不同的容器遍历规则不一样,比如:ArrayList、LinkedLi
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

线程池源码分析-ThreadPoolExecutor

#1 系列目录 线程池接口分析以及FutureTask设计实现 线程池源码分析-ThreadPoolExecutor 该系列打算从一个最简单的Executor执行器开始一步一步扩展到ThreadPoolExecutor,希望能粗略的描述出线程池的各个实现细节。针对JDK1.7中的线程池 #2 ThreadPoolExecutor 从上一篇文章中了解到:核心execute(futureTask)方法需要被子类来实现,所以我们就俩重点看看ThreadPoolExecutor是如何实现这个核心方法的
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

uoj#218. 【UNR #1】火车管理

题目描述 n,m<=5e5,x<=1e3 题解 想了一下就想出了log^2的,之后刚了一个下午尝试去掉一个log结果发现把set改成优先队列就过了 log^2的自然做法: 在线段树上挂加进去的数,如果下传的话时间会假,因此不下传标记 弹栈就单点查询,把经过的所有区间内时间最大的弹掉,第二大的就是新的值 弹掉之后下传,注意只需要下传一个标记,往下一共有log个区间 时间是log^2的,用优先队列即可通过并且不是最慢 题解一个log的自然做法: 主席树直接维护每个时刻的栈顶(时间/值),弹栈等于把
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

线程池源码分析-FutureTask

#1 系列目录 线程池接口分析以及FutureTask设计实现 线程池源码分析-ThreadPoolExecutor 该系列打算从一个最简单的Executor执行器开始一步一步扩展到ThreadPoolExecutor,希望能粗略的描述出线程池的各个实现细节。针对JDK1.7中的线程池 #2 Executor接口说明 Executor执行器,就是执行一个Runnable任务,可同步可异步,接口定义如下: public interface Executor { /** * E
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

c# yield关键字的用法

1.yield实现的功能 yield return: 先看下面的代码,通过yield return实现了类似用foreach遍历数组的功能,说明yield return也是用来实现迭代器的功能的。 using static System.Console; using System.Collections.Generic; class Program { //一个返回类型为IEnumerable<int>,其中包含三个yield return public static IEnumerable
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

CentOS7安装GLPI资产管理系统

1.安装配置docker-ce 此步骤不在此赘述 2.启动配置MySQL容器 mkdir -p /opt/mysql5.7/{data,conf} docker pull mysql:5.7.31 docker run --name mysql-app \ --restart=always \ --cap-add=SYS_BOOT --cap-add=SYS_TIME \ --net=host \ -e MYSQL_ROOT_PASSWORD=glpi \ -e TZ='Asia/Shan
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

【Docker学习笔记】Docker常用命令学习

目录 Docker的常用命令 帮助命令 镜像命令 容器命令 常用其他命令 Docker的常用命令 帮助命令 docker --version # 查看版本信息 docker info # 查看详细信息 docker --help # 查看帮助信息 镜像命令 docker images 查看所有本地的主机上的镜像 [email protected] ~ % docker images REPOSITORY TAG IM
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

《Qt学习系列笔记》--章节索引

Qt下载、安装及环境搭建:https://www.cnblogs.com/mrlayfolk/p/13111349.html Qt初始化代码基本说明:https://www.cnblogs.com/mrlayfolk/p/13123885.html Qt信号与槽的使用:https://www.cnblogs.com/mrlayfolk/p/13124400.html Qt内存回收机制:https://www.cnblogs.com/mrlayfolk/p/13127062.html Qt QM
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

《左耳听风》-ARTS-打卡记录-第九周

Algorithm 680. 验证回文字符串 Ⅱ 我看leetcode这个题的难度为:简单,但却花了我好长时间,做的结果性能一般,被虐的生无可恋. 最开始采用的方法是脑子里最先蹦出来的,其实功能上没有问题,但耗时比较长,竟然被leetcode深深的鄙视了. class Solution { public: bool validPalindrome(string s) { string s1 = s; reverse(s.begin(),s.end());
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

享元(Flyweight)模式

享元(Flyweight)模式 模式定义:运用共享技术有效地支持大量细粒度的对象。 优点:如果系统中有大量类似的对象,可以节省大量的内存以及CPU资源。 缺点: 为了使对象可以共享,需要将一些不能共享的状态外部化,这将增加程序的复杂性。 读取享元模式的外部状态会使得运行时间稍微变长。 数据共享要考虑的问题:多线程 数据一致性 不可变对象[String ] package flyweight; import java.util.Map; import java.util.concurrent.
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

tinyproxy最新版,3分钟tinyproxy使用教程 把你的Centos设置成代理ip服务器

其实用不到3分钟,我1分钟就配置好了。 最近,3分钟tinyproxy使用教程,我在公司做了一些与爬虫相关的工作,每个做过数据捕获的人都知道,编写程序来捕获数据的过程并不像用浏览器打开网页那么简单!大多数网站都为自己网站的性能和数据安全设置了各种反爬行策略。最常见的是添加验证码,这需要用户登录,并且单个IP有频率和频率限制等。因此,大多数爬虫工程师在抓取数据之前应该先调查一下这个网站的反抓取策略!当我们不能正常访问网站时,我们可以在程序中设置代理IP来判断网站是否屏蔽了我们的IP。在做出判断之
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

Listening & Speaking - Day23

Listening: 今日份老友记: Chandler's opportunity 今天先听一半; 明天下回分解; 感觉慢慢的能听明白个大概了; 坚持还是有收获的; "I can do all things"
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

控指针异常

所有的引用类型变量,都可以赋值为一个nell值,但是代表其中什么都没有。 数组必须进行new初始化才能使用其中的元素。 如果只是赋值了一个null,没有进行new创建 那么将会发生: 空指针异常:Nellpointer Exception 举例: public class Demo02ArrayNull{   public static void main (String [ ] args){     int [ ] array =null; //补上:array =new int [1];
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

uoj#216. 【UNR #1】Jakarta Skyscrapers

题目描述 \(a,b,c \leq 10^{18}\) 题解 先除gcd 假设给出a和b,构出b,2b,4b,8b...2^kb(2^kb<a),那么显然是(a,b),(a-b,b),(a,a-2b)来使b*2 可以尝试每次乘4,发现结果是一样的 辗转相除求出gcd之后即可构出1,2,4,8...,之后减一下即可 用map去重,否则过不了 时间看似是log^2的,但是感受一下发现b每*2模完之后就可以少一次,因此应该是log*常数级别的 code #include <bits/stdc++.h
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

用selenium登录豆瓣网

from selenium import webdriver #import time driver=webdriver.Chrome() #最小化窗口 #driver.minimize_window() driver.get("https://www.douban.com/") #time.sleep(4) #定位iframe元素 iframe=driver.find_element_by_tag_name("iframe") #切换到iframe子网页 driver.switch_t
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

每调用一次函数,显示自动变量中的内容,然后给其值加1

/* www.g-7.net,袁欢的博客,袁欢博客,程序袁欢,革启博客 版本:vs2019社区版 功能:每调用一次函数,显示自动变量中的内容,然后给其值加1 自动类变量是可以省略的(默认储存类型),自动类变量是在动态存储区内分配单元的,函数返回时,编译系统将释放才存储单元 因此在当函数调用时,自动类变量在存放中的数据就消失了 auto float f;*/ #include<stdio.h> void test_auto() { int va = 0; printf("aut
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

GMT6 加坐标标签 题目 图例(SAC数据)

# write in GMT6 gmt begin f1 jpg #设置底图 -BX +l“label”定义x轴坐标 af 是直接让gmt自适应,a10f5g10 分别设置了标注(annotation)间隔为10,刻度(frame)间隔为5 gmt basemap -JX25c/25c -R-700/500/100/140 -Bxaf+l"TIME/s" -Byaf+l"DIST/deg" -BWSrt M=6 gmt sac [A,B,C]*T.SAC -C-600/300 -M$M -
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

Vue cli 项目搭建

安装Node 官网:https://nodejs.org/zh-cn/ 安装是否成功: node-v npm-v Vue脚手架安装 npm install -g @vue/cli 安装是否成功:vue -V npm unistall vue-cli -g 卸载, 安装高版本需要先卸载低版本 脚手架构建项目 vue create xxxxx 选择Babel,Router,Vuex,Linter,css Pre-processors history mode 带 # 配置css编译器随便选, 这里
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

Java第二十一天

简单练习了第八章的综合例程,明天学习第十二章的内容
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0

10.程序员那点事-培训感悟

   那段时光是我难忘的记忆,每天培训完结束以后回到住宿的地方。由于深圳夏天特别闷热,我们每天晚上光着膀子在寝室噼里啪啦的敲着代码,有时候也会放首音乐来缓解那种困乏感以及敲代码的枯燥感。培训老师再三强调:“你们现在首要的任务就是敲代码,不要嫌弃枯燥,代码一定得多敲。你们很多人反映说看不懂代码,代码这玩意,你就得多敲,尤其是你们这些入行不久的,原理性的东西,你们整的越深越容易陷进去,这个事情得循环渐进。”   编程学习本身就是一件漫长而痛苦的事情,尤其是从头学起,意味着一切得重新开始,其中的困难
分类: 其他 发布时间: 07-29 23:15 阅读次数: 0