比較操作與集合 - 建立集合
比較操作與集合 - 建立集合
1.建立列表
描述 | JDK | 番石榴 | GS-收藏 |
---|---|---|---|
建立空列表 | new ArrayList<> () |
Lists.newArrayList() |
FastList.newList() |
從值建立列表 | Arrays.asList("1", "2", "3") |
Lists.newArrayList("1", "2", "3") |
FastList.newListWith("1", "2", "3") |
建立容量= 100 的列表 | new ArrayList<>(100) |
Lists.newArrayListWithCapacity(100) |
FastList.newList(100) |
從任何 collectin 建立列表 | new ArrayList<>(collection) |
Lists.newArrayList(collection) |
FastList.newList(collection) |
從任何 Iterable 建立列表 | - | Lists.newArrayList(iterable) |
FastList.newList(iterable) |
從 Iterator 建立列表 | - | Lists.newArrayList(iterator) |
- |
從陣列建立列表 | Arrays.asList(array) |
Lists.newArrayList(array) |
FastList.newListWith(array) |
使用工廠建立列表 | - | - | FastList.newWithNValues(10, () -> "1") |
例子:
System.out.println("createArrayList start");
// Create empty list
List<String> emptyGuava = Lists.newArrayList(); // using guava
List<String> emptyJDK = new ArrayList<>(); // using JDK
MutableList<String> emptyGS = FastList.newList(); // using gs
// Create list with 100 element
List < String > exactly100 = Lists.newArrayListWithCapacity(100); // using guava
List<String> exactly100JDK = new ArrayList<>(100); // using JDK
MutableList<String> empty100GS = FastList.newList(100); // using gs
// Create list with about 100 element
List<String> approx100 = Lists.newArrayListWithExpectedSize(100); // using guava
List<String> approx100JDK = new ArrayList<>(115); // using JDK
MutableList<String> approx100GS = FastList.newList(115); // using gs
// Create list with some elements
List<String> withElements = Lists.newArrayList("alpha", "beta", "gamma"); // using guava
List<String> withElementsJDK = Arrays.asList("alpha", "beta", "gamma"); // using JDK
MutableList<String> withElementsGS = FastList.newListWith("alpha", "beta", "gamma"); // using gs
System.out.println(withElements);
System.out.println(withElementsJDK);
System.out.println(withElementsGS);
// Create list from any Iterable interface (any collection)
Collection<String> collection = new HashSet<>(3);
collection.add("1");
collection.add("2");
collection.add("3");
List<String> fromIterable = Lists.newArrayList(collection); // using guava
List<String> fromIterableJDK = new ArrayList<>(collection); // using JDK
MutableList<String> fromIterableGS = FastList.newList(collection); // using gs
System.out.println(fromIterable);
System.out.println(fromIterableJDK);
System.out.println(fromIterableGS);
/* Attention: JDK create list only from Collection, but guava and gs can create list from Iterable and Collection */
// Create list from any Iterator
Iterator<String> iterator = collection.iterator();
List<String> fromIterator = Lists.newArrayList(iterator); // using guava
System.out.println(fromIterator);
// Create list from any array
String[] array = {"4", "5", "6"};
List<String> fromArray = Lists.newArrayList(array); // using guava
List<String> fromArrayJDK = Arrays.asList(array); // using JDK
MutableList<String> fromArrayGS = FastList.newListWith(array); // using gs
System.out.println(fromArray);
System.out.println(fromArrayJDK);
System.out.println(fromArrayGS);
// Create list using fabric
MutableList<String> fromFabricGS = FastList.newWithNValues(10, () -> String.valueOf(Math.random())); // using gs
System.out.println(fromFabricGS);
System.out.println("createArrayList end");
2 建立集
描述 | JDK | 番石榴 | GS-收藏 |
---|---|---|---|
建立空集 | new HashSet<>() |
Sets.newHashSet() |
UnifiedSet.newSet() |
從值建立集 | new HashSet<>(Arrays.asList("alpha", "beta", "gamma") ) |
Sets.newHashSet("alpha", "beta", "gamma") |
UnifiedSet.newSetWith("alpha", "beta", "gamma") |
從任何集合建立集合 | new HashSet<>(collection) |
Sets.newHashSet(collection) |
UnifiedSet.newSet(collection) |
從任何 Iterable 建立集合 | - | Sets.newHashSet(iterable) |
UnifiedSet.newSet(iterable) |
從任何迭代器建立集合 | - | Sets.newHashSet(iterator) |
- |
從 Array 建立 set | new HashSet<>(Arrays.asList(array)) |
Sets.newHashSet(array) |
UnifiedSet.newSetWith(array) |
例子:
System.out.println("createHashSet start");
// Create empty set
Set<String> emptyGuava = Sets.newHashSet(); // using guava
Set<String> emptyJDK = new HashSet<>(); // using JDK
Set<String> emptyGS = UnifiedSet.newSet(); // using gs
// Create set with 100 element
Set<String> approx100 = Sets.newHashSetWithExpectedSize(100); // using guava
Set<String> approx100JDK = new HashSet<>(130); // using JDK
Set<String> approx100GS = UnifiedSet.newSet(130); // using gs
// Create set from some elements
Set<String> withElements = Sets.newHashSet("alpha", "beta", "gamma"); // using guava
Set<String> withElementsJDK = new HashSet<>(Arrays.asList("alpha", "beta", "gamma")); // using JDK
Set<String> withElementsGS = UnifiedSet.newSetWith("alpha", "beta", "gamma"); // using gs
System.out.println(withElements);
System.out.println(withElementsJDK);
System.out.println(withElementsGS);
// Create set from any Iterable interface (any collection)
Collection<String> collection = new ArrayList<>(3);
collection.add("1");
collection.add("2");
collection.add("3");
Set<String> fromIterable = Sets.newHashSet(collection); // using guava
Set<String> fromIterableJDK = new HashSet<>(collection); // using JDK
Set<String> fromIterableGS = UnifiedSet.newSet(collection); // using gs
System.out.println(fromIterable);
System.out.println(fromIterableJDK);
System.out.println(fromIterableGS);
/* Attention: JDK create set only from Collection, but guava and gs can create set from Iterable and Collection */
// Create set from any Iterator
Iterator<String> iterator = collection.iterator();
Set<String> fromIterator = Sets.newHashSet(iterator); // using guava
System.out.println(fromIterator);
// Create set from any array
String[] array = {"4", "5", "6"};
Set<String> fromArray = Sets.newHashSet(array); // using guava
Set<String> fromArrayJDK = new HashSet<>(Arrays.asList(array)); // using JDK
Set<String> fromArrayGS = UnifiedSet.newSetWith(array); // using gs
System.out.println(fromArray);
System.out.println(fromArrayJDK);
System.out.println(fromArrayGS);
System.out.println("createHashSet end");
3 建立地圖
描述 | JDK | 番石榴 | GS-收藏 |
---|---|---|---|
建立空地圖 | new HashMap<>() |
Maps.newHashMap() |
UnifiedMap.newMap() |
建立容量= 130 的地圖 | new HashMap<>(130) |
Maps.newHashMapWithExpectedSize(100) |
UnifiedMap.newMap(130) |
從其他地圖建立地圖 | new HashMap<>(map) |
Maps.newHashMap(map) |
UnifiedMap.newMap(map) |
從鍵建立對映 | - | - | UnifiedMap.newWithKeysValues("1", "a", "2", "b") |
例子:
System.out.println("createHashMap start");
// Create empty map
Map<String, String> emptyGuava = Maps.newHashMap(); // using guava
Map<String, String> emptyJDK = new HashMap<>(); // using JDK
Map<String, String> emptyGS = UnifiedMap.newMap(); // using gs
// Create map with about 100 element
Map<String, String> approx100 = Maps.newHashMapWithExpectedSize(100); // using guava
Map<String, String> approx100JDK = new HashMap<>(130); // using JDK
Map<String, String> approx100GS = UnifiedMap.newMap(130); // using gs
// Create map from another map
Map<String, String> map = new HashMap<>(3);
map.put("k1","v1");
map.put("k2","v2");
Map<String, String> withMap = Maps.newHashMap(map); // using guava
Map<String, String> withMapJDK = new HashMap<>(map); // using JDK
Map<String, String> withMapGS = UnifiedMap.newMap(map); // using gs
System.out.println(withMap);
System.out.println(withMapJDK);
System.out.println(withMapGS);
// Create map from keys
Map<String, String> withKeys = UnifiedMap.newWithKeysValues("1", "a", "2", "b");
System.out.println(withKeys);
System.out.println("createHashMap end");
更多示例: CreateCollectionTest