自己写的一段解决ARRAYLIST批量接口调用以后乱序的代码

简介:



import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;


public class TestListOrder {

	public static void main(String[] args) {
		List<Long> productIds = new ArrayList<Long>();
		for(int i=100;i<1000;i++) {
			productIds.add(new Long(i));
		}
		
		for(int i=0;i<productIds.size();i++) {
			System.out.println(productIds.get(i));
		}
		
		List<Commodity> commoditys = new ArrayList<Commodity>();
		for(int i=200;i<800;i++) {
			Commodity n = new Commodity();
			n.setProductId(new Long(i));
			n.setProductName("alibaba_"+i);
			commoditys.add(n);
		}
		Collections.shuffle(commoditys);
		System.out.println("------------------before calibration-------------");
		
		for(int i=0;i<commoditys.size();i++) {
			System.out.println(commoditys.get(i).getProductId()+"    "+commoditys.get(i).getProductName());
		}
		
		HashMap<String , Commodity> map = new HashMap<String , Commodity>();  
		 for(Commodity nn:commoditys) {
			 map.put(nn.getProductId()+"", nn);
		 }
		 
		 
		 List<Commodity> sortedCommoditys = new ArrayList<Commodity>();
		 for(Long pid:productIds) {
			 Commodity comm = map.get(pid+"");
			 if(null!=comm) {
				 sortedCommoditys.add(comm);
			 }
		 }
/*		List<Commodity> sortedCommoditys = new ArrayList<Commodity>();
		for(int i=0;i<productIds.size();i++) {
			for(Commodity n:commoditys) {
				if(productIds.get(i).equals(n.getProductId())) {
					sortedCommoditys.add(n);
				}
			}
		}*/
		
		System.out.println("------------------after calibration-------------");
		for(int i=0;i<sortedCommoditys.size();i++) {
			System.out.println(sortedCommoditys.get(i).getProductId()+"    "+sortedCommoditys.get(i).getProductName());
		}
		
	}
}


目录
相关文章
|
JSON fastjson Java
FastJson、JackJson 以及 Gson 的区别
FastJson、JackJson 以及 Gson 是 Java 生态圈中三种常用的 Json 解析器,它们均可将 Java 对象序列化为 Json 格式的字符串,也可将 Json 字符串反序列化为 Java 对象。下面我们讨论一下三者在序列化和反序列化操作中的一些区别。
1380 0
|
Java 关系型数据库 MySQL
Springboot 导入导出Excel ,一对多关系,复合表格、合并单元格数据
Springboot 导入导出Excel ,一对多关系,复合表格、合并单元格数据
2051 1
Springboot 导入导出Excel ,一对多关系,复合表格、合并单元格数据
|
Web App开发 JavaScript 前端开发
谁说forEach不支持异步代码,只是你拿不到异步结果而已
JavaScript 的 `forEach` 不直接支持异步操作,但可以在回调中使用 `async/await`。虽然 `forEach` 不会等待 `await`,异步代码仍会执行。MDN 文档指出 `forEach` 预期同步回调。ECMAScript 规范和 V8 源码显示 `forEach` 基于 for 循环实现,不返回 Promise。通过 `setTimeout` 可观察到异步操作完成。与 `map` 不同,`forEach` 不适合处理异步序列,常需转换为 `Promise.all` 结合 `map` 的方式。
199 11
|
监控 数据可视化 测试技术
Apifox 如何进行 API 自动化测试?经验之谈
选择 Apifox 来进行 API 自动化测试能够确保每次迭代的质量,避免引入新的 bug,还要实现自动化测试、定时测试、产品监控、可视化测试、持续集成等,帮助提高效率,通过设计和执行有针对性的测试用例,来全面验证产品功能,确保软件系统能够正常运行,减少上线后的问题。
Apifox 如何进行 API 自动化测试?经验之谈
|
easyexcel
EasyExcel动态合并单元格
EasyExcel动态合并单元格
676 0
|
机器人 Linux API
基于Ollama+AnythingLLM轻松打造本地大模型知识库
Ollama是开源工具,简化了在本地运行大型语言模型(ile优化模型运行,支持GPU使用和热加载。它轻量、易用,可在Mac和Linux上通过Docker快速部署。AnythingLLM是Mintplex Labs的文档聊天机器人,支持多用户、多种文档格式,提供对话和查询模式,内置向量数据库,可高效管理大模型和文档。它也是开源的,能与Ollama结合使用,提供安全、低成本的LLM体验。这两款工具旨在促进本地高效利用和管理LLMs。
155990 32
|
SQL 关系型数据库 MySQL
MySQL in 太慢的 3 种优化方案
MySQL中的`eq_range_index_dive_limit`参数默认值为200,影响了IN查询的执行方式。当IN列表项少于这个值时,MySQL会使用扫描索引树(精确成本计算),而多于此值则使用索引统计(快速但可能不准)来分析查询成本。大量IN值可能导致性能下降。解决方案包括:1) 分批查询;2) 使用UNION ALL创建内存临时表;3) 创建实体表存储IN值并进行JOIN操作。注意,实体表需及时清理并避免反复插入删除导致性能下降。
2514 0
|
JSON 监控 API
咨询电商平台API的调用方法!
随着电子商务的快速发展,电商平台间的竞争愈加激烈。为了提供更加优质的服务,很多电商平台会开放其商品API数据,允许第三方开发者利用这些数据创建各种应用。本文将对商品API数据的概念、获取方式以及在电商中的应用进行探讨,并使用具体代码示例进行说明
咨询电商平台API的调用方法!
|
数据库 测试技术 Java
阿里技术专家详解DDD系列 第二弹 - 应用架构
应用架构,指软件系统中固定不变的代码结构、设计模式、规范和组件间的通信方式。在应用开发中架构之所以是最重要的第一步,因为一个好的架构能让系统安全、稳定、快速迭代。但是今天我们在做业务研发时,更多会关注一些宏观的架构,而忽略了应用内部的架构设计,希望能通过案例分析和重构,推演出一套高质量的DDD架构。
58268 24
阿里技术专家详解DDD系列 第二弹 - 应用架构
|
缓存 网络协议
Clumsy 弱网络环境模拟工具使用介绍
Clumsy 弱网络环境模拟工具使用介绍
1651 0