集合工厂方法

原文:https://www.studytonight.com/java-9/collection-factory-methods

Java 9 版本中列表集合映射界面增加了一些工厂方法。这些方法对于用简单而简洁的代码创建不可变的集合非常有用。

列出接口工厂方法

|

| 战法 |

| 描述 | | 静态列表 Of()</e> | 它返回一个包含零个元素的不可变列表。 | | 静态列表的(E e1)</e> | 它返回一个包含一个元素的不可变列表。 | | 静态列表的(E...元素)</e> | 它返回一个包含任意数量元素的不可变列表。 | | (e1、e2)的静态列表 | 它返回包含两个元素的不可变列表。 | | (e1、e2、e3)的静态列表 | 它返回一个包含三个元素的不可变列表。 | | 静态〔t0〕列表〔t1〕of(E1、e2、e3、e4) | 它返回包含四个元素的不可变列表。 | | 静态〔t0〕列表〔t1〕of(E1、e2、e3、e4、e5) | 它返回一个包含五个元素的不可变列表。 | | 静态〔t0〕列表〔t1〕of(E1、e2、e3、e4、e5、e6) | 它返回一个包含六个元素的不可变列表。 | | 静态〔t0〕列表〔t1〕of(E1、e2、e3、E3、e4、e5、e6、e7) | 它返回一个包含七个元素的不可变列表。 | | 静态〔t0〕列表〔t1〕of(E1、e2、e3、E3、e4、e5、e6、e7、e8) | 它返回一个包含八个元素的不可变列表。 | | 静态〔t0〕列表〔t1〕of(E1、e2、e3、E3、e4、e5、e6、e7、e8、e9) | 它返回一个包含九个元素的不可变列表。 | | 静态清单清单清单清单清单

| 清单【e1、e2、e3、E3、e5、e6、e7、e8、e9、e10】清单 |</e> | 它返回一个包含十个元素的不可变列表。 |

示例:列表

在这个例子中,我们使用列表接口的工厂方法创建了一个不可变的列表。

import java.util.List;

public class Main { 
    public static void main(String[] args){  
        List<String> fruits = List.of("Orange","Mango","Apple");
        System.out.println(fruits);
        // Traversing using for-each
        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

【橙,芒果,苹果】 橙 芒果 苹果

设置接口工厂方法

像列表接口一样,集合接口也包含创建不可变集合的工厂方法。下面是 Set 接口的工厂方法表。

| 修饰符和类型 | 描述 | | 静态设置为()</e> | 它返回一个包含零个元素的不可变集合。 | | (e1)的静态设置 | 它返回一个包含一个元素的不可变集合。 | | 静态设置的(E...元素)</e> | 它返回一个包含任意数量元素的不可变集合。 | | (e1、e2)的静态设置 | 它返回一个包含两个元素的不可变集合。 | | 静态设置为(e1,e2,e3)</e> | 它返回一个包含三个元素的不可变集合。 | | 静态〔t0〕设置〔t1〕of(E1、e2、e3、e4) | 它返回一个包含四个元素的不可变集合。 | | 静态〔t0〕设置〔t1〕of(E1、e2、e3、e4、e5) | 它返回一个包含五个元素的不可变集合。 | | 静态〔t0〕设置〔t1〕of(E1、e2、e3、e4、e5、e6) | 它返回一个包含六个元素的不可变集合。 | | 静态〔t0〕设置〔t1〕of(E1、e2、e3、E3、e4、e5、e6、e7) | 它返回一个包含七个元素的不可变集合。 | | 静态〔t0〕设置〔t1〕of(E1、e2、e3、E3、e4、e5、e6、e7、e8) | 它返回一个包含八个元素的不可变集合。 | | 静态〔t0〕设置〔t1〕of(E1、e2、e3、E3、e4、e5、e6、e7、e8、e9) | 它返回一个包含九个元素的不可变集合。 | | 静态〔t0〕设置〔t1〕of(E1、e2、e3、E3、e4、e5、e6、e7、e8、e9、e10) | 它返回一个包含十个元素的不可变集合。 |

示例:设置

在这个例子中,我们使用 Set 接口的工厂方法来创建一个不可变的集合。

public class Main { 
    public static void main(String[] args){  
        Set<String> fruits = Set.of("Orange","Mango","Apple");
        System.out.println(fruits);
        // Traversing using for-each
        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

【橙,芒果,苹果】 橙 芒果 苹果

映射接口工厂方法

以下是映射接口工厂方法的表格。

| 方法 | 描述 | | 静态映射的()</k> | 它返回一个包含零映射的不可变映射。 | | (K k1,V v1)的静态 | 它返回包含单个映射的不可变映射。 | | (K k1,V v1,K k2,V v2)的静态 | 它返回包含两个映射的不可变映射。 | | 静态的(K k1,V v1,K k2,V v2,K k3,V v3)</k> | 它返回包含三个映射的不可变映射。 | | 静态的(K k1,V v1,K k2,V v2,K k3,V v3,K k4,V v4)</k> | 它返回包含四个映射的不可变映射。 | | 静态的(K k1,V v1,K k2,V v2,K k3,V v3,K k4,V v4,K k5,V v5)</k> | 它返回包含五个映射的不可变映射。 | | 静态的(K k1,V v1,K k2,V v2,K k3,V v3,K k4,V v4,K k5,V v5,K k6,V v6)</k> | 它返回一个包含六个映射的不可变映射。 | | 静态的 | 它返回一个包含七个映射的不可变映射。 | | 静态的 | 它返回一个包含八个映射的不可变映射。 | | 静态的 | 它返回一个包含九个映射的不可变映射。 | | 静态的 | 它返回一个包含十个映射的不可变映射。 | | 静态映射重心(映射。条目 extends K,? extends V>...条目)</k> | 它返回一个不可变的映射,包含从给定条目中提取的键和值。 |

示例:映射

在这个例子中,我们使用工厂方法创建了一个不可变的映射。

import java.util.Map;

public class Main { 
    public static void main(String[] args){  
        Map<Integer,String> fruits = Map.of(101,"Orange",102,"Mango",103,"Apple");
        System.out.println(fruits);
        // Traversing using for-each
        for(Map.Entry<Integer, String> m : fruits.entrySet()){    
            System.out.println(m.getKey()+" "+m.getValue());
        }
    }
}

{ 102 =芒果,101 =橘子,103 =苹果} 102 芒果 101 橘子 103 苹果

示例 2:映射工厂方法

import java.util.Map;

public class Main { 
    public static void main(String[] args){  
        Map<Integer, String> fruits = Map.ofEntries(
                Map.entry(101,"Orange"),
                Map.entry(102, "Apple"),
                Map.entry(103, "Mango"));
        System.out.println(fruits);
        // Traversing using for-each
        for(Map.Entry<Integer, String> m : fruits.entrySet()){    
            System.out.println(m.getKey()+" "+m.getValue());
        }
    }
}

{ 102 =苹果,103 =芒果,101 =橙色} 102 苹果 103 芒果 101 橙色