集册 Java实例教程 获取包含与提供的键Iterable对应的Map的条目。

获取包含与提供的键Iterable对应的Map的条目。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

542
获取一个映射,其中包含与提供的键Iterable对应的项。

/*

 * Copyright Terracotta, Inc.

 *

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *     http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */

import java.util.ArrayList;

import java.util.Collection;/* from n o w j a   v  a . c o m - 时  代  Java*/

import java.util.Collections;

import java.util.HashMap;

import java.util.HashSet;

import java.util.LinkedHashMap;

import java.util.LinkedHashSet;

import java.util.List;

import java.util.Map;

import java.util.Set;


public class Main{

    /**

     * Entries for populating {@link org.ehcache.spi.cache.Store Store} and

     * {@link org.ehcache.spi.loader.CacheLoader CacheLoader} instances in the

     * unit tests.  The entries used are generally subset using the key sets

     * {@link #KEY_SET_A}, {@link #KEY_SET_B}, {@link #KEY_SET_C}, and/or

     * {@link #KEY_SET_F}.

     * <p/>

     * Some tests are dependent on the order of the keys/entries.  In general,

     * for each key set ('xxxXn'), the keys/entries must be ordered by 'n'.

     */

    static final Map<String, String> TEST_ENTRIES;

    /**

     * Gets a {@code Map} holding entries corresponding to the key {@code Iterable} provided.  Each entry

     * value is prepended with the prefix value provided.

     *

     * @param prefix the non-{@code null} prefix used to alter each entry's value

     * @param subset the {@code Iterable} over the keys for entries to copy into the result {@code Map}

     *

     * @return a new, insert-ordered, modifiable {@code Map} holding the designated entries

     */

    static Map<String, String> getAltEntryMap(final String prefix,

            final Iterable<String> subset) {

        assert prefix != null;//来自 n o w j a   v  a . c o m - 时  代  Java

        return getEntryMap(Collections.singletonList(subset), prefix);

    }

    /**

     * Gets a {@code Map} holding entries corresponding to the key {@code Iterable} provided.

     *

     * @param subset the {@code Iterable} over the keys for entries to copy into the result {@code Map}

     *

     * @return a new, insert-ordered, modifiable {@code Map} holding the designated entries

     */

    static Map<String, String> getEntryMap(final Iterable<String> subset) {

        return getEntryMap(Collections.singletonList(subset), null);

    }

    /**

     * Gets a {@code Map} holding entries corresponding to the key {@code Iterable}s provided.

     *

     * @param subset1 the first {@code Iterable} over the keys for entries to copy into the result {@code Map}

     * @param subset2 the second {@code Iterable}s over the keys for entries to copy into the result {@code Map}

     *

     * @return a new, insert-ordered, modifiable {@code Map} holding the designated entries

     */

    static Map<String, String> getEntryMap(final Iterable<String> subset1,

            final Iterable<String> subset2) {

        final List<Iterable<String>> subsets = new ArrayList<Iterable<String>>(

                2);

        subsets.add(subset1);

        subsets.add(subset2);

        return getEntryMap(subsets, null);

    }

    /**

     * Gets a {@code Map} holding entries corresponding to the key {@code Iterable}s provided.

     *

     * @param subset1 the first {@code Iterable} over the keys for entries to copy into the result {@code Map}

     * @param subset2 the second {@code Iterable}s over the keys for entries to copy into the result {@code Map}

     * @param subset3 the third {@code Iterable}s over the keys for entries to copy into the result {@code Map}

     *

     * @return a new, insert-ordered, modifiable {@code Map} holding the designated entries

     */

    static Map<String, String> getEntryMap(final Iterable<String> subset1,

            final Iterable<String> subset2, final Iterable<String> subset3) {

        final List<Iterable<String>> subsets = new ArrayList<Iterable<String>>(

                3);

        subsets.add(subset1);

        subsets.add(subset2);

        subsets.add(subset3);

        return getEntryMap(subsets, null);

    }

    /**

     * Gets a {@code Map} holding entries corresponding to the key {@code Iterable}s provided.

     *

     * @param subset1 the first {@code Iterable} over the keys for entries to copy into the result {@code Map}

     * @param subset2 the second {@code Iterable}s over the keys for entries to copy into the result {@code Map}

     * @param subset3 the third {@code Iterable}s over the keys for entries to copy into the result {@code Map}

     * @param subset4 the fourth {@code Iterable}s over the keys for entries to copy into the result {@code Map}

     *

     * @return a new, insert-ordered, modifiable {@code Map} holding the designated entries

     */

    static Map<String, String> getEntryMap(final Iterable<String> subset1,

            final Iterable<String> subset2, final Iterable<String> subset3,

            final Iterable<String> subset4) {

        final List<Iterable<String>> subsets = new ArrayList<Iterable<String>>(

                4);

        subsets.add(subset1);

        subsets.add(subset2);

        subsets.add(subset3);

        subsets.add(subset4);

        return getEntryMap(subsets, null);

    }

    
展开阅读全文