HashMap中按key排序

逆向工程师的Shopee爬虫避坑指南:af-ac-enc-dat参数生成原理与反反爬策略 本文深入剖析了Shopee电商平台的反爬虫加密机制,重点解析了核心请求头参数x-sap-ri、x-sap-sec及af-ac-enc-dat的生成原理与联动关系。文章从逆向工程视角,提供了定位加密代码、分析算法逻辑的实战方法,并分享了基于JS执行环境模拟与无头浏览器控制的可持续反反爬策略,为高效、稳定地采集数据提供专业指南。 阅读详情

今天面试,碰到一问题,觉得挺有意思的,记录下来。

以下代码,print方法输出的是key的集合:[1, 20, 3, 9],现在print2方法要实现以下功能,将map中的key-value按以下方式打印出来:

1----v1
3----v3
9----v9
20----v20

其中,map中的key是String类型的,但都是自然数,也即key为:"1"  "2" "8" "10"这样子的。请补充完print2方法


package test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class MapSortTest {
	
	private static void print(HashMap<String,String> k_v){
		ArrayList<String> keyList = new ArrayList<String>();
		keyList.addAll(k_v.keySet());
		Collections.sort(keyList);
		System.out.println(keyList);
		
	}
	
	private static void print2(HashMap<String, String> k_v){
		
		
	}
	
	public static void main(String[] args) {
		HashMap<String, String> k_v = new HashMap<String, String>();
		k_v.put("1", "v1");
		k_v.put("3", "v3");
		k_v.put("20", "v20");
		k_v.put("9", "v9");
		
		print(k_v);
		print2(k_v);
	}

}


分析:在集合中,有排序方法,Collections.sort(list,c),直接重写Comparator接口的compare方法,就能实现print2的方法。完整代码如下


package test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class MapSortTest {
	
	private static void print(HashMap<String,String> k_v){
		ArrayList<String> keyList = new ArrayList<String>();
		keyList.addAll(k_v.keySet());
		Collections.sort(keyList);
		System.out.println(keyList);
		
	}
	
	private static void print2(HashMap<String, String> k_v){
		List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String, String>>(k_v.entrySet());
		Collections.sort(list, new Comparator<Map.Entry<String, String>>() {

			@Override
			public int compare(Entry<String, String> o1,
					Entry<String, String> o2) {
				// 升序排序
				return Integer.parseInt(o1.getKey())-Integer.parseInt(o2.getKey());
			}
		});
		
		for (Entry<String, String> entry : list) {
			System.out.println(entry.getKey()+"----"+entry.getValue());
		}
		
	}
	
	public static void main(String[] args) {
		HashMap<String, String> k_v = new HashMap<String, String>();
		k_v.put("1", "v1");
		k_v.put("3", "v3");
		k_v.put("20", "v20");
		k_v.put("9", "v9");
		
		print(k_v);
		print2(k_v);
	}

}


输出为:

[1, 20, 3, 9]
1----v1
3----v3
9----v9
20----v20


7、基于机器学习的生产效率估计方法解析 本文探讨了基于机器学习的生产效率估计方法,重点介绍了效率分析树(EAT)和凸效率分析树(CEAT)算法的原理及其与传统自由处置壳(FDH)和数据包络分析(DEA)方法的对比。通过剪枝优化、生产可能性集构建及方向距离函数(DDF)估计,EAT和CEAT在避免过拟合、提升估计稳定性与处理凸性假设方面展现出优势。结合PISA教育数据的实证研究,采用箱线图、核密度图和非参数检验方法验证了不同模型效率得分分布的显著差异。研究表明,EAT与CEAT为生产效率评估提供了更准确、灵活的工具,适用于教育、企业生产和医疗等多个 阅读详情

相关推荐

从零到一:在Ubuntu 20.04上搭建ROS1与PX4无人机开发环境

本文详细指导如何在Ubuntu 20.04系统上搭建完整的ROS1与PX4无人机开发环境。内容涵盖ROS Noetic安装、PX4固件源码编译、MAVROS通信桥接以及QGroundControl地面站的配置,并通过Gazebo仿真完成全链路联调测试,为无人机算法开发与验证提供稳定可靠的基础平台。

weixin_29292431的博客 167

hashmap中根据key和value的值排序

本文总结hashmap分别根据key值和value值排序的方法。 一、根据key排序 hashmap是无序的。 当所有key的hash的最大值<数组的长度-1时,HashMap可以将存入的元素按照key的hash从小到大排序。这个后期我会从源码的角度详细去分析。 public static void main(String[] args) { Map mapKey = new HashMap(); mapKey.put("Bfadfads",99.00);

liwangcuihua的博客 6752

倍压整流电路设计

倍压整流电路利用二极管和电容的充放电特性实现电压提升,可分为二倍压、三倍压及多倍压结构。其工作原理是通过交流电正负半周交替对电容充电并叠加电压,具有结构简单、成本低的优点,但带载能力差且纹波较大。典型应用包括示波器、电蚊拍等小电流高压场景。设计时需重点考虑电容耐压、二极管选型和负载匹配,高频驱动可优化性能。该电路在低功耗高压电源中具有独特优势,但需注意安全防护与电压稳定性问题。

硬核科技 1711

HashMap按照键值key排序

Map map = new HashMap(); map.put("4", "a"); map.put("2", "b"); map.put("1", "c"); map.put("3", "d"); 第一种方法: [code="java"] Object[] key = m

qixiaopeng 1515

在不同版本Python中安装PyQT5及PyQT5-Tools

在不同版本Python中安装PyQT5及PyQT5-Tools

zoomgu680的博客 2万+

生成式引擎优化(GEO):启动GEO优化的5个有效策略

随着生成式AI的普及,传统SEO正被GEO(生成式引擎优化)取代。本文提出GEO五大核心策略:用户意图解析、结构化内容设计、语义关键词优化、对话式内容创作和权威信源建设。研究表明,优化后的内容在AI答案中的引用率提升300%,点击率增长27%。文章还介绍了BERT模型、Schema标记等关键技术工具,并指出未来GEO将向多模态优化、实时数据更新方向发展。企业需避免简单堆砌关键词,应建立长期内容策略,通过结构化、权威性内容在AI时代保持竞争优势。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 2786

Java——HashMap键值排序

Map集合排序——根据value对key进行排序 首先来看看Map集合获取元素的三种常见方法keySet()、values()、entrySet() values():返回map集合的所有value的Collection集合(于集合中无序存放) 1 import java.util.*; 2 3 public class Main{ 4 public static void ma...

云祁QI 3231

UGUI合批杀手:Mask/RectMask2D为何必断合批?

颜色缓冲负责记录像素颜色;模板缓冲负责记录“这个像素的模板值”(一个小整数);渲染时,你可以设定:只有模板值为 X 的地方才允许画;或者往某些区域写特定的模板值。类似于:先拿一支隐形笔在纸上画出一块区域,给它记一个编号“1”,后面的涂色动作只允许涂在“编号为1”的区域上。合批的前提:渲染状态不变,连续元素能一口气画完。材质、贴图、混合模式、Stencil、裁剪区域……都得一致。Mask / RectMask2D 的本质:在渲染状态上加规则——“只在某个区域内允许写像素”。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 119

HashMap按key排序或按value排序的方法

HashMap的储存是没有顺序的,而是按照key的HashCode实现. // key=商品名称,value=价格,这里以这个例子实现按名称排序和按价格排序. Map store = new HashMap(); store.put("iphone12", 6799); store.put("iphone12pro", 8499); store.put("macbookPro", 19499); store.put("ipadAir", 6999); store.put("watch6", 3199)

晚风中的自由 8529

开源数字人、虚拟直播部署教程

对,你无看错,是欧美的。在直播带货案例里,我们把模型导入到ue4,我们给模型在ue4里预设了四个动作(站着、站着说话、坐着、坐着说话),三个表情(平静、开发、愤怒),三个镜头(全局、近矩说话、看显示器播放商品展示)。我们只需要把目标主播的直播给录制下来,提取样本数据,然后训练一个从粉丝的不同刺激的组合,到主播的不同响应方式的多元逻辑回归的数学模型参数即可。

南七小僧的学海无涯 4561

YOLOv5源码逐行超详细注释与解读(3)——训练部分train.py

全网最详细的YOLOv5项目源码解读之训练部分train. py。全文近5万字!代码逐行注释,逐段讲解,小白入门必备!

路人贾的博客 3万+

hashMap按key大小排序

HashMap 是一个无序的集合,不能按照 key 的大小排序。如果需要按照 key 的大小排序,可以考虑使用 TreeMap,它是基于红黑树实现的有序集合,可以根据 key 的自然顺序进行排序。如果需要在多线程环境中使用有序的映射,可以考虑使用 ConcurrentSkipListMap,它是线程安全的有序映射,底层是基于跳表实现的,支持高并发访问,性能比 TreeMap 更好。可以看到,通过 TreeMap 将 HashMap 中的元素按照 key 的大小排序后,输出结果是按照 key 的升序排列的。

还在活水泥的未来包工头 2109

RAGFlow体验大提升:使用GPU加速

场景:在正常部署过程中,启动RAGFlow会用到docker-compose.yml文件来启动。但是在实际使用过程中,会发现RAGFlow极其的卡和笨重,给一一种很不好的用户体验,有没有一种可以让RAGFlow加速的呢?进入RAGFlow的docker目录下会有发现有很多docker的配置文件。方法一:选择docker-compose-gpu.yml这个来启动项目。两个方法选其一 ,就会让你的RAGFlow的使用起来非常的丝滑!方法二:在docker-compose.yml末尾加上。

Ven%的博客 3156

java中Hashmap按key排序

在实际的工作中,有时会有Hashmap按key排序 的需求,我找的方法如下: 一、 HashMap> raceMap = new HashMap>(); Object[] key_arrrObjects = raceMap.keySet().toArray(); Arrays.sort(key_arrrObjects); for (Object k

wuyou1336的博客 2153

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Java】Java的HashMap按key排序和按value排序的实现

Java的HashMap按key排序和按value排序的实现

斯基的朦胧 6607

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

HashMap 按key的字母排序

 HashMap排序; 如: 请以key按字母排序输出map。 HashMap map = new HashMap(); map.put("btest", "test"); map.put("catid", "test" ); map.put("acest", "test"); map.put("abatid","test"); map.put("dbatid","test"

u010387291的专栏 6125

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Java HashMap中根据key或value进行排序

Java HashMap中根据key或value进行排序HashMap如何根据key进行排序HashMap如何根据value进行排序例题:leetcode算法题第451题 在之前的博客中,我介绍了Java中一些对于元素进行比较的方法,链接见: Java 自定义比较与排序方法——Comparable与Comparator的简单使用 Java 可用于比较与排序的lambda表达式和comparing方法 本博客继续介绍关于HashMap中存储的内容如何进行排序 HashMap如何根据key进行排序 我们还是会用

DTDanteDong的博客 2504

java 实现对HashMap 的 key/value 进行排序

java 实现对HashMap 的 key/value 进行排序 1. 代码 package test; import java.util.*; public class MapTest { public static void main(String[] args) { Map&amp;lt;String, Integer&amp;gt; map = new HashMap&amp;lt;...

说文科技,做有态度的研究。 1241

Java HashMap排序(按Key排序和按Value排序)

HashMap按Value排序 import java.util.*; public class HashMapSort { private static void mapValueSort(HashMap<String, Integer> labelsMap) { List<Map.Entry<String, Integer>> ...

猪猪会飞的博客 2335

HashMap按key排序(转)

HashMap按key排序  HashMap   map   =   new   HashMap();            map.put("0201",   "0201");            map.put("01",   "01");            map.put("0304",   "0304");            map.put("0101&quo

crowson的专栏 331

java hashmap key排序_Java HashMap按key排序和按value排序的两种简便方法【转】

前言HashMap的储存是没有顺序的,而是按照key的HashCode实现.key=手机品牌,value=价格,这里以这个例子实现按名称排序和按价格排序.Map phone=new HashMap();phone.put("Apple",7299);phone.put("SAMSUNG",6000);phone.put("Meizu",2698);phone.put("Xiaomi",2400);...

weixin_39590989的博客 435

HashMap 根据key或者value排序

HashMap 根据key或者value排序

weixin_44623980的博客 346

java map按照key排序_Java HashMap按照key进行排序

首页>基础教程>集合框架>HashMap类Java HashMap按照key进行排序Java HashMap本身就是升序排列,如果要获取集合数据,见如下代码:Map map = new HashMap();map.put("d", 3);map.put("c", 1);Set keySet = map.keySet();Collections.sort(keySet)...

weixin_42342010的博客 450

mysql key value 排序_Java HashMap按key排序和按value排序的两种简便方法

HashMap的储存是没有顺序的,而是按照key的HashCode实现.key=手机品牌,value=价格,这里以这个例子实现按名称排序和按价格排序.Map phone=newHashMap();phone.put("Apple",8899);phone.put("SAMSUNG",7000);phone.put("Meizu",2698);phone.put("Xiaomi",1800);Sys...

weixin_34528410的博客 459

Java 如何让HashMap集合按照key进行排序呢?

Java 让HashMap集合按照key进行排序的示例分享

qq_25073223的博客 3573

Java HashMap按key排序和按value排序的两种简便方法

前言 HashMap的储存是没有顺序的,而是按照key的HashCode实现. key=手机品牌,value=价格,这里以这个例子实现按名称排序和按价格排序. Map phone=new HashMap(); phone.put("Apple",7299); phone.put("SAMSUNG",6000); phone.put("...

Hibiki's Ending 9万+
上一篇: 发布SpringMVC项目报错java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
下一篇: Java基础——try finally执行顺序
冷静BB
博客等级 码龄12年 298粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值