日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java集合list方法吗_关于集合:将List转换为Java集合的最简单方法

發布時間:2023/12/8 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java集合list方法吗_关于集合:将List转换为Java集合的最简单方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Java中,將EDCOX1的0度轉換為EDCOX1×1的最簡單的方法是什么?

Set foo = new HashSet(myList);

@阿什什:這與這個問題完全無關。沒有人問如何將空值轉換為集合。人們總是需要處理NULL是Java(文化)被破壞的標志。幾乎總是,空是一個錯誤。拋出一個異常實際上是你能做的最好的。尤其是當它是對集合的空引用時:您能想象到空引用對集合的語義意義多久一次,并且這種意義不同于空集合?

同意,您應該(幾乎)始終傳遞:bean的不可變靜態空實例,或者集合的collections.emptyxx(),而不是空實例。如果代碼在每個方法開始時都沒有被空檢查污染,那么它還會使代碼更容易讀取。

嗨,伙計們,你們能推薦一篇關于這個NLP和其他異常處理的好文章或其他參考資料嗎?

雖然正確,但該答案缺乏足夠的技術背景,無法保證是最佳/公認的答案,因為這里存在著一些陷阱,這取決于Set和Map的實現方式;此處假定為HashSet。

我同意SEPP2K,但還有其他一些可能重要的細節:

new HashSet(myList);

將給您一個沒有排序的集合,該集合沒有重復項。在本例中,重復是使用對象上的.equals()方法標識的。這是結合.hashcode()方法完成的。(更多關于平等的信息,請看這里)

提供排序集的另一種方法是:

new TreeSet(myList);

如果foo實現了可比性,這是可行的。如果沒有,那么您可能需要使用比較器:

Set lSet = new TreeSet(someComparator);

lSet.addAll(myList);

這取決于compareTo()(來自可比較接口)或compare()(來自comparator)以確保唯一性。因此,如果您只關心唯一性,那么就使用哈希集。如果您正在排序,那么考慮樹集。(記住:以后再優化!)如果時間效率很重要,請使用哈希集如果空間效率很重要,請查看treeset。請注意,通過trove(和其他位置)可以更有效地實現集合和映射。

感謝您提供定制的比較器用例!

如果您使用了番石榴圖書館:

Set set = Sets.newHashSet(list);

或者,更好:

Set set = ImmutableSet.copyOf(list);

+1用于使用不可變集

為什么不可變的et.copyof更好?

Guava的NeWHASSSET()在基本的Java新HASSET()上有什么優勢?

@nelda.techspiress javadoc討論了應該或不應該使用該方法的時間。注意最后一部分:這個方法不是很有用,將來可能會被棄用。盡管我有點驚訝,但一致性并沒有被提到作為一個因素,比如說,它與ImmutableSet.of()的一致性。編輯:它可能不是因子,因為所有重載都是不需要的。

嘿,謝謝你的參考@shmosel,但我在尋找更多的經驗知識。對于使用過番石榴的人,為什么要選擇番石榴而不是哈希集?

使用Java 8可以使用流:

List mylist = Arrays.asList(100, 101, 102);

Set myset = mylist.stream().collect(Collectors.toSet()));

你查過這方面的罰款嗎?這將執行一個iterable+迭代器,一個新的hashset(),然后對于每個列表項,對新的集合進行addall()調用??傮w而言,CCA。為新哈希集(列表)這樣簡單的東西創建了5個對象。

Set alphaSet ?= new HashSet();

或者完整的例子

import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

public class ListToSet

{

public static void main(String[] args)

{

List alphaList = new ArrayList();

alphaList.add("A");

alphaList.add("B");

alphaList.add("C");

alphaList.add("A");

alphaList.add("B");

System.out.println("List values .....");

for (String alpha : alphaList)

{

System.out.println(alpha);

}

Set alphaSet = new HashSet(alphaList);

System.out.println("

Set values .....");

for (String alpha : alphaSet)

{

System.out.println(alpha);

}

}

}

+1表示完整的代碼示例。這里還需要注意的一點是,從一次運行到另一次運行,散列并不能保證是相同的。這意味著在"set values…"之后打印的列表可能是"abc"一次運行,而"cba"另一次運行。正如我在回答中提到的,您可以使用樹集來獲得穩定的順序。另一種選擇是使用Linkedhashset,它記住添加項目的順序。

我將在轉換為set之前執行空檢查。

if(myList != null){

Set foo = new HashSet(myList);

}

或Setfoo = myList == null ? Collections.emptySet() : new HashSet(myList);。

對于Java 8來說非常簡單:

List < UserEntity > vList= new ArrayList<>();

vList= service(...);

Set vSet= vList.stream().collect(Collectors.toSet());

"實際"Java 8將使用EDCOX1×5;

感謝您的評論,您是對的:)

您可以將List<>轉換為Set<>。

Set set=new HashSet();

//Added dependency -> If list is null then it will throw NullPointerExcetion.

Set set;

if(list != null){

set = new HashSet(list);

}

我想你的意思是把它從一張單子放到另一張單子上。

讓我們不要忘記我們相對較新的朋友java-8流API。如果在將列表轉換為集合之前需要對其進行預處理,則最好具有以下內容:

list.stream()..collect(Collectors.toSet());

爪哇-阿達爾

set.addAll(aList);

新對象

new HashSet(list)

JAVA-8

list.stream().collect(Collectors.toSet());

使用古瓦

Sets.newHashSet(list)

阿帕奇公地

CollectionUtils.addAll(targetSet, sourceList);

使用Java 10,您現在可以使用EDCOX1(8)來輕松地將EDCOX1的9度轉換為不可修改的EDOCX1 10。

例子:

var set = Set.copyOf(list);

記住,這是一個無序操作,不允許使用null元素,因為它會拋出NullPointerException。

如果您希望它是可修改的,那么只需將它傳遞給構造函數一個Set實現。

有多種方法可以得到一個Set,如下所示:

List sourceList = new ArrayList();

sourceList.add(1);

sourceList.add(2);

sourceList.add(3);

sourceList.add(4);

// Using Core Java

Set set1 = new HashSet<>(sourceList); ?//needs null-check if sourceList can be null.

// Java 8

Set set2 = sourceList.stream().collect(Collectors.toSet());

Set set3 = sourceList.stream().collect(Collectors.toCollection(HashSet::new));

//Guava

Set set4 = Sets.newHashSet(sourceList);

// Apache commons

Set set5 = new HashSet<>(4);

CollectionUtils.addAll(set5, sourceList);

當我們使用Collectors.toSet()時,它返回一個集合,并根據文件:There are no guarantees on the type, mutability, serializability, or thread-safety of the Set returned返回。如果我們想得到一個HashSet,那么我們可以使用另一個選項來獲得一個集合(檢查set3)。

使用構造函數的最佳方法

Set s= new HashSet(list);

在Java 8中,還可以使用流API:

Set s= list.stream().collect(Collectors.toSet());

一個具有EDCOX1和7的Java 8彈性解決方案

Set mySet = Optional.ofNullable(myList).map(HashSet::new).orElse(null);

總結

以上是生活随笔為你收集整理的java集合list方法吗_关于集合:将List转换为Java集合的最简单方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。