python调用Java方法传入HashMap ArrayList
1、Java代码:
package com;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map; public class ListTest {
public ListTest(){} public ArrayList<Double> sumList(ArrayList<Double> arrayList){
double sum = 0.0;
for (Double num :arrayList){
sum += num;
}
ArrayList<Double> doubles = new ArrayList<Double>();
doubles.add(sum);
return doubles;
} public HashMap<String,Integer> countWrod(String str){
String[] st = str.split(" ");
HashMap<String,Integer> map = new HashMap<>();
for (String strs:st){
if (map.containsKey(strs)){
map.put(strs,map.get(strs)+1);
}else{
map.put(strs,1);
}
}
return map;
} public ArrayList<HashMap<String,Double>> listMap(ArrayList<HashMap<String,Double>> lm){
return new ArrayList<>(lm);
} public static void main(String[] args){
ListTest t = new ListTest();
Double[] als = {1.0,2.0,3.0};
ArrayList s = t.sumList(new ArrayList<Double>(Arrays.asList(als)));
System.out.println(s); ArrayList<HashMap<String,Double>> lt = new ArrayList<HashMap<String,Double>>();
HashMap<String,Double> md = new HashMap<>();
md.put("我的",25.);
lt.add(md);
System.out.println(t.listMap(lt)); String st = "wo is are you do wo is you get set add al al als al";
System.out.println(t.countWrod(st));
}
}
2、封装成jar包请看上一篇博文
https://www.cnblogs.com/wuzaipei/p/11161247.html
3、python代码
import time from jpype import *
import os
import numpy as np
import json if __name__ == '__main__':
jdkPath = r"D:\Java1.8\jdk1.8.0_191\jre\bin\server\jvm.dll" # 注意一个重要的问题,导入包的时候路径不能有中文。
jarpath = os.path.join(os.path.abspath('.'), 'javaCode/listMapTest.jar')
print(jarpath)
startJVM(jdkPath,"-ea","-Djava.class.path=%s" % jarpath)
java.lang.System.out.println(" helloworld! ")
model = JClass('com.ListTest')
# 或者通过JPackage引用Test类
# javaIoStream = JPackage('javaIoStream')
# fibnq = javaIoStream.fibnq()
ListTest= model() # 1、传入List
al = [1,2,3,4,2,5]
jl = java.util.ArrayList()
for i in al:
jl.add(float(i))
ll = ListTest.sumList(jl).toString() # 2、接收Map
str = "life is short we use python list is shor we use java" maps = ListTest.countWrod(str).toString() # 3、传入 list 嵌套map。
lmst = [{"admin":float(2),"我不做大哥好多年":float(9.0)},{"我不做大哥好多年":float(9.0)},{"i love you":0.520}] listMaps = java.util.ArrayList()
for item in lmst:
mp = java.util.HashMap()
for k in item.keys():
mp.put(k,item.get(k))
listMaps.add(mp) listM = ListTest.listMap(listMaps).toString() shutdownJVM() print(json.loads(ll)[0]) stmp = ""
for item in maps:
if item == "=":
stmp += ":"
else:
stmp += item
print(stmp) print(listM)
python调用Java方法传入HashMap ArrayList的更多相关文章
- C++调用JAVA方法详解
C++调用JAVA方法详解 博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ...
- Js调用Java方法并互相传参
Js通过PhoneGap调用Java方法并互相传参的. 一.JAVA代码 写一个类,该类继承自Plugin并重写execute方法. import org.json.JSONArray; import ...
- HAL中通过JNI调用java方法【转】
转载请注明本文出处:http://www.cnblogs.com/xl19862005 作者:Xandy 由于工作的需要,最近一直在研究HAL.JNI.Java方法之间互调的问题,并做了如下一些记录和 ...
- JNI C反射调用java方法
前面记录了调用C的学习笔记,现在来记录一下C反射调用Java的笔记.JNI开发学习之调用C方法 Android开发中调用一个类中没有公开的方法,可以进行反射调用,而JNI开发中C调用java的方法也是 ...
- Android Studio NDK开发-JNI调用Java方法
相对于NDK来说SDK里面有更多API可以调用,有时候我们在做NDK开发的时候,需要在JNI直接Java中的方法和变量,比如callback,系统信息等.... 如何在JNI中调用Java方法呢?就需 ...
- Python调用Java代码部署及初步使用
Python调用Java代码部署: jpype下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 下载的时候需要使用Chrome浏览器进行下载 ...
- Python调用Java(基于Ubuntu 18.04)
最近实习,需要使用Python编程,其中牵涉到一些算法的编写.由于不熟悉Python,又懒得从头学,而且要写的算法自己之前又用Java实现过,就想着能不能用Python调用Java.经过查找资料,方法 ...
- C#调用Java方法(详细实例)
C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ...
- C#调用Java方法
C#调用Java方法(详细实例) 阅读目录 C#调用c++ C#调用JAVA方法 C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具 ...
随机推荐
- fastjson的方法应用与java JSONObject
Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson.并且还超越了go ...
- 常用命令之------ln
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的 ...
- 502 bad gateway nginx 的错误的解决方案
总结 一般是php问题居多,也需要调整相应的nginx参数,最后也可能是mysql假死 nginx问题 查看日志中的报错error.log一般设置路径/usr/local/nginx/logs/ngi ...
- selenium操作下拉选和网页提示框
import time from selenium import webdriver from selenium.webdriver.support.select import Select#处理下拉 ...
- 【BZOJ3684】大朋友和多叉树(拉格朗日反演)
题目链接 题意 求满足如下条件的多叉树个数: 1.每一个点的儿子个数在给定的集合 \(S\) 内 2.总的叶子节点树为 \(s\) 儿子之间有顺序关系,但节点是没有标号的. Sol 拉格朗日反演板子题 ...
- sh_12_转义字符
sh_12_转义字符 # \t 在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐 print("1\t2\t3") print("10\t20\t30&qu ...
- (53)LINUX应用编程和网络编程之八Linux网络基础
3.8.1.网络通信概述 3.8.1.1.从进程间通信说起:网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信. 3.8.1.2.网络通信的层次 (1)硬件部分:网卡 ...
- Mysql 获取成绩排序后的名次
其实就是输出mysql的排序后的行号 RT:获取单个用户的成绩在所有用户成绩中的排名 可以分两步: 1.查出所有用户和他们的成绩排名 ) as rowNo from t_user, () ) ...
- [design pattern](5) Factory Method
前言 在前面一章博主介绍了简单工厂模式(Simple Factory),接着上面的章节,今天博主就来介绍下工厂方法模式(Factory Method). 思考题 首先,让我们来思考下面的问题: 在上一 ...
- [BZOJ2111]:[ZJOI2010]Perm 排列计数(组合数学)
题目传送门 题目描述 称一个1,2,...,N的排列${P}_{1}$,${P}_{2}$,...,${P}_{N}$是Magic的,当且仅当2≤i≤N时,${P}_{i}$>${P}_{\fr ...