문제

Php 에서,하나를 처리할 수 있는 목록의 국가의 이름과 그들의 약어와 결합 배열은 다음과 같다:

<?php
    $stateArray = array(
        "ALABAMA"=>"AL",
        "ALASKA"=>"AK",
        // etc...
        "WYOMING"=>"WY"
    );

    foreach ($stateArray as $stateName => $stateAbbreviation){
        print "The abbreviation for $stateName is $stateAbbreviation.\n\n";
    }
?>

출력(열쇠를 가진 주문 보존):

The abbreviation for ALABAMA is AL.

The abbreviation for ALASKA is AK.

The abbreviation for WYOMING is WY.

편집:참고 그 순서 배열 요소의 보존에서의 출력 php 버전입니다.Java 구현을 사용하여,HashMap,을 보증하지 않습의 순서를 요소입니다.하지도 않는 사전에 있습니다.

이것은 어떻게 수행 java,python?나만을 찾아 접근 방식을 공급하는 값을 주어,키,python 과 같은 의:

stateDict = {
    "ALASKA": "AK",
    "WYOMING": "WY",
}

for key in stateDict:
    value = stateDict[key]

편집:대답을 기반으로,이 솔루션에서는 python,

# a list of two-tuples
stateList = [
    ('ALABAMA', 'AL'),
    ('ALASKA', 'AK'),
    ('WISCONSIN', 'WI'),
    ('WYOMING', 'WY'),
]

for name, abbreviation in stateList:
    print name, abbreviation

출력:

ALABAMA AL
ALASKA AK
WISCONSIN WI
WYOMING WY

는 정확하게 무엇이 필요합니다.

도움이 되었습니까?

해결책

Python:

for key, value in stateDict.items(): # .iteritems() in Python 2.x
    print "The abbreviation for %s is %s." % (key, value)

에서 Java:

Map<String,String> stateDict;

for (Map.Entry<String,String> e : stateDict.entrySet())
    System.out.println("The abbreviation for " + e.getKey() + " is " + e.getValue() + ".");

다른 팁

java 에 대한 연관 배열 사용 지도

import java.util.*;

class Foo
{
    public static void main(String[] args)
    {
        Map<String, String> stateMap = new HashMap<String, String>();
        stateMap.put("ALABAMA", "AL");
        stateMap.put("ALASKA", "AK");
        // ...
        stateMap.put("WYOMING", "WY");

        for (Map.Entry<String, String> state : stateMap.entrySet()) {
             System.out.printf(
                "The abbreviation for %s is %s%n",
                state.getKey(),
                state.getValue()
            );
        }
    }
}

또한,유지 삽입하기 위해 사용할 수 있습니다 사용에 대 HashMap.

에서는 파이썬 사전 주문 에서 사용할 수 있는 파이썬 2.7(아직 출시되지 않은)및 Python3.1.그것은이라고 OrderedDict.

이것은 변경된 코드에서 o948 을 사용하는 다루고 대신 HashMap.트리 맵을 보존 순서의 열쇠에 의하여 열쇠이다.

import java.util.*;

class Foo
{
 public static void main(String[] args)
 {
    Map<String, String> stateMap = new TreeMap<String, String>();
    stateMap.put("ALABAMA", "AL");
    stateMap.put("ALASKA", "AK");
    // ...
    stateMap.put("WYOMING", "WY");

    for (Map.Entry<String, String> state : stateMap.entrySet()) {
             System.out.printf(
                    "The abbreviation for %s is %s%n",
                    state.getKey(),
                    state.getValue()
            );
      }
    }
 }

다른 방법으로 그 일의에서 Java.하지만 더 나은 방법으로 이미 게시,이 구문에 가까이 php 코드입니다.

for (String x:stateDict.keySet()){
        System.out.printf("The abbreviation for %s is %s\n",x,stateDict.get(x));
    }

의 라인을 따라 알렉산더의 답변...

네이티브 파이썬 사전 유지되지 않음을 주문한 최대의 효율성을 그것의 기본을 사용:정렬되지 않은 매핑을 키의 값이 있습니다.

나는 생각할 수 있는 두 가지 해결 방법:

  1. 볼의 소스 코드 OrderedDict 와 그것을 포함에서 자신의 프로그램입니다.

  2. 목록을 보유하고 있는 키기 위해서는:

    states = ['Alabamba', 'Alaska', ...]  
    statesd = {'Alabamba':'AL', 'Alaska':'AK', ...}
    for k in states:
        print "The abbreviation for %s is %s." % (k, statesd[k])
    

트리 맵은 당신의 질문에 대답하기 때문에 그것은 종류에 의해 요소를 키를 사용하는 동안 보존은 원래 순서입니다.그러나,트리맵 더 적합하기 때문에 사전의 분류를 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top