java把两个list的结果集放到一个list里面

本文展示了一个Java程序示例,该程序通过发送GET请求获取淘宝搜索页面的内容,并利用FastJSON库解析返回的JSON数据来提取总页数信息。此外,还介绍了如何构造和操作包含业务指标的Map和List。
package com.yanshu.tools;




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


import com.alibaba.fastjson.JSON;






public class pageNum {
public void getString()
{
// String url = "https://s.taobao.com/search?spm=a230r.1.0.0.3d2936f0doEGnW&q=%E5%A5%B3%E8%A3%85%E5%A4%96%E5%A5%97%E5%86%AC&rs=up&rsclick=7&preq=%E5%A5%B3%E8%A3%852017%E6%96%B0%E6%AC%BE%E6%BD%AE&cps=yes&ppath=413%3A800000782%3B20000%3A123042686%3B122216562%3A47502";
String url = "http://api.s.m.taobao.com/search.json?m=shopitemsearch&sellerId=196993935&n=40&orderType=hotsell_desc&ajax=true";
// String url = "https://s.taobao.com/search?tab=all&ppath=20000:7043912&cat=54900006&q=FLAM&spma=1513693743";

String pageNum = HttpUtility.sendGet(url, null);


  Map maps=(Map)JSON.parse(pageNum);
  Map mapw=new HashMap<>();
  Object key=null;
  Object value=null;
  
  Object proxystring=null;
  for (Object map : maps.entrySet()){  
    key = ((Map.Entry)map).getKey();
    value = ((Map.Entry)map).getValue();
      mapw.put(key, value);
      if( key =="totalPage"||key.equals("totalPage"))
      {
      proxystring=value;
      }
  }  
  System.out.println("-----"+proxystring);
/*String JsonStr = RegexUtils2.regexFirst(pageNum, "g_page_config = (.*?)\\}\\};")+"}}";
// String JsonStr = RegexUtils2.regexFirst(pageNum, "jsonp873\\((.*?)\\}\\}\\);")+"}}";
//就喜欢黑色的

Object mods = JSON.parseObject(JsonStr).get("mods");

Object sortbar = JSON.parseObject(mods.toString()).get("sortbar");

Object data = JSON.parseObject(sortbar.toString()).get("data");

Object pager = JSON.parseObject(data.toString()).get("pager");

Object totalPage = JSON.parseObject(pager.toString()).get("totalPage");*/



System.out.println(pageNum);



}
public static void gets()
{
List listarr=new ArrayList();
List list=new ArrayList<>();
Map map=new HashMap<>();
map.put("七天订单完结率",1);
map.put("退款成功金额",1);
map.put("已收货商品数",1);
map.put("交易成功笔数",1);
map.put("已收款金额",1);
Map map33=new HashMap<>();
map33.put("七天订单完结率",2);
map33.put("退款成功金额",2);
map33.put("已收货商品数",2);
map33.put("交易成功笔数",2);
map33.put("已收款金额",2);
list.add(map);
list.add(map33);
System.out.println("list.get(0)-->>"+list.get(0));
System.out.println("list.get(1)-->>"+list.get(1));
List list1=new ArrayList<>();
Map map1=new HashMap<>();
map1.put("店铺成交金额",11);
map1.put("拍下支付率",11);
map1.put("订单支付率",11);
map1.put("支付客单件",11);
map1.put("支付客单价",11);
Map map111=new HashMap<>();
map111.put("店铺成交金额",22);
map111.put("拍下支付率",22);
map111.put("订单支付率",22);
map111.put("支付客单件",22);
map111.put("支付客单价",22);
list1.add(map1);
list1.add(map111);
System.out.println(list1);
Object key=null;
  Object value=null;
for(int i=0;i<list.size();i++)
{

System.out.println("list.size()-------->>>>"+list.size());
  
Map map2=new HashMap<>();
  Object proxystring=null;
  for (Object map11 : ((Map) list.get(i)).entrySet()){  
    key = ((Map.Entry)map11).getKey();
    value = ((Map.Entry)map11).getValue();
    //System.out.println(key+","+value);
    map2.put(key,value);
   
  }
  for (Object map11 : ((Map) list1.get(i)).entrySet()){  
    key = ((Map.Entry)map11).getKey();
    value = ((Map.Entry)map11).getValue();
    // System.out.println(key+","+value);
    map2.put(key,value);
   
  }
  listarr.add(map2);
 // System.out.println("map2--->>>"+map2);
}
System.out.println("listarr--->>"+listarr);




}
public static void main(String[] args) {
Long long1=0l;
Long long2=0l;
long1=System.currentTimeMillis();
gets();
long2=System.currentTimeMillis();
System.out.println(long2-long1);


}

}
### 合并两个Java List到同一个Map中 在Java 8中,可以通过使用`Stream API`和`Collectors.toMap`方法将两个`List`合并到一个`Map`中。假设我们有两个`List`,分别包含键和值,可以使用以下方法实现: #### 示例代码 ```java import java.util.*; import java.util.stream.Collectors; public class MergeListsToMap { public static void main(String[] args) { // 创建两个列表 List<String> keys = Arrays.asList("key1", "key2", "key3"); List<String> values = Arrays.asList("value1", "value2", "value3"); // 检查两个列表长度是否一致 if (keys.size() != values.size()) { throw new IllegalArgumentException("Keys and values lists must have the same size."); } // 使用Stream API将两个列表合并为一个Map Map<String, String> resultMap = IntStream.range(0, keys.size()) .boxed() .collect(Collectors.toMap(i -> keys.get(i), i -> values.get(i))); // 输出结果 System.out.println(resultMap); } } ``` 上述代码通过`IntStream.range`生成索引流,并将其映射为键值对,最终收为`Map`[^1]。 #### 处理重复键的情况 如果两个`List`中的键可能存在重复,可以提供一个合并函数来解决冲突。例如: ```java Map<String, String> resultMap = IntStream.range(0, keys.size()) .boxed() .collect(Collectors.toMap( i -> keys.get(i), i -> values.get(i), (existingValue, newValue) -> existingValue + "," + newValue // 合并重复键的值 )); ``` 这里使用了`Collectors.toMap`的第三个参数,该参数是一个合并函数,用于处理键冲突时的行为[^3]。 #### 注意事项 - 如果两个`List`的大小不一致,需要在合并前进行检查,否则可能会导致`IndexOutOfBoundsException`。 - 在实际应用中,可以根据需求调整合并逻辑,例如忽略重复键或覆盖旧值。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值