如何模拟蟒蛇';s dict“;项目();Java';什么是哈希映射?

如何模拟蟒蛇';s dict“;项目();Java';什么是哈希映射?,java,python,hashmap,Java,Python,Hashmap,我知道我应该学会如何用Java高效编程,不要再认为它是Python;但问题是,这种事情在Java中变成了一场小小的噩梦 我在Python中有以下函数,它将字符串作为参数: def decodeL(input): L = [] for i in range(len(input)): for j in x.items(): // Where "x" is the Dictionary outside the function. if input[i].lower() in j

我知道我应该学会如何用Java高效编程,不要再认为它是Python;但问题是,这种事情在Java中变成了一场小小的噩梦

我在Python中有以下函数,它将字符串作为参数:

def decodeL(input):
L = []
for i in range(len(input)):
    for j in x.items(): // Where "x" is the Dictionary outside the function.
        if input[i].lower() in j[0]:
            L.append(j[1])
return L
忽略函数本身的功能,使它工作得如此好的是“items()”方法,它返回列表中的元组。如您所见,我使用这些元组访问它自己的索引

在Java中,这是一个非常令人不快的问题

static ArrayList items(HashMap hashTarget) {
    ArrayList L = new ArrayList();
    Set<String> keys = hashTarget.keySet();
    Collection<Object> values = hashTarget.values();

    for (int i = 0; i < hashTarget.size(); i++) {
        L.add(keys);
        L.add(values);
    }

    return L;
}
静态ArrayList项(HashMap hashTarget){
ArrayList L=新的ArrayList();
Set keys=hashTarget.keySet();
集合值=hashTarget.values();
for(int i=0;i
如您所见,我试图实现自己的“items()”方法,但失败惨重;由于Java中没有元组,这真的把我的大脑搞乱了:)。我不能像Python那样漂亮地插入键和值;因此,我无法创建“decodeL”函数的Java版本,这是我的最终目标


就这样;另一个随机的“挑战”摆在你们面前。

Java已经通过
Map.entrySet()
方法为你们实现了这一点

for(Map.Entry<K, V> j : x.entrySet()) {
    V val = j.getValue(); // j[1]
    K key = j.getKey();   // j[0]
}
for(Map.Entry j:x.entrySet()){
V val=j.getValue();//j[1]
K key=j.getKey();//j[0]
}

我用Python编写了这个函数,这是我找到的最好的解决方案。我不是一个有经验的程序员,所以如果你说这不是最好的方法,我完全相信你。公平地说,这不是一个问题,它只是非常难阅读,因为它感觉不像Python。我只是对你的投了赞成票,并删除了我的,因为它们是相同的想法。你在20秒内打败了我…谢谢你们!那就行了,我现在有了这个,我可以处理了。