每日一課 | Java 中如何將 ArrayList 與 HashSet 互相轉換?

2022-01-29 CSDN Meetup
Collection對象具有一個構造函數,該構造函數接受Collection對象來初始化值。由於Set和List都擴展了Collection,因此轉換非常簡單。它只是將List傳遞給Set構造函數,反之亦然。

Set set = new HashSet(list);

List list = new ArrayList(set);

1.列出示例

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
 
public class ConvertListToSet
{
    public static void main( String[] args )
    {
      System.out.println("List values ");
      List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("1");
        
        for (String temp : list){
          System.out.println(temp);
        }
        
        Set<String> set = new HashSet<String>(list);
        
        System.out.println("Set values ");
        for (String temp : set){
          System.out.println(temp);
        }
    }
}

輸出量

List values
1
2
3
4
1
Set values 
3
2
1
4

轉換後,List中所有重複的值將被忽略,因為Set不允許重複的值。2.設置為列表示例

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
 
public class ConvertSetToList
{
    public static void main( String[] args )
    {
      System.out.println("Set values ");
        Set<String> set = new HashSet<String>();
        set.add("1");
        set.add("2");
        set.add("3");
        set.add("4");
        
        for (String temp : set){
          System.out.println(temp);
        }
        
        System.out.println("List values ");
      List<String> list = new ArrayList<String>(set);
        
        for (String temp : list){
          System.out.println(temp);
        }
    }
}

輸出量

Set values 
3
2
1
4
List values 
3
2
1
4

翻譯自: https://mkyong.com/java/how-to-convert-list-to-set-arraylist-to-hastset/

相關焦點

  • 每日一課 | Java Final關鍵字示例
    Java中的Final關鍵字是一個修飾符,用於限制用戶執行不需要的代碼或防止代碼或值被更改。可以在3個上下文中使用此關鍵字。
  • java之轉換流,OutputStreamWriter的簡單介紹
    java之轉換流的原理。這次,小編要介紹的是轉換流中的OutputStreamWriter,與及它的使用,具體如下:java.io.OutputStreamWriter extends WriterOutputStreamWriter:是字符通向字節流的橋梁:可以指定的
  • Java開發者易犯錯誤Top10
    數組轉換為數組列表將數組轉換為數組列表,開發者經常會這樣做:[java]List<String> list = Arrays.asList(arr); Arrays.asList()將返回一個數組內部是私有靜態類的ArrayList,這不是java.util.ArrayList類,java.util.Arrays.ArrayList
  • 18 個示例帶你掌握 Java 8 日期時間處理!
    /juejin.im/post/5a795bad6fb9a0634f407ae5Java 8 推出了全新的日期時間API,在教程中我們將通過一些簡單的實例來學習如何使用新API。Java判斷日期是早於還是晚於另一個日期另一個工作中常見的操作就是如何判斷給定的一個日期是大於某天還是小於某天?
  • java中賦值運算符+=的意思
    java基礎中+=的意思就是先將兩邊相加在賦值給左邊。= a+ 10;為何報錯呢,因為a是short類型,和10進行加法運算得到的是int類型,自動升級轉換。所以只能用int類型來接收,但a是short類型,所以報錯,會提示轉換會導致數據的缺失。但可以進行強制轉換。
  • java數據類型的強制轉換及相關注意事項
    各位小夥伴們大家好,在上一篇文章中,小編介紹的是數據類型的自動轉換,這次小編要介紹的是數據類型的強制轉換。之前小編有講過,如果數據要進行自動類型轉換,就要符合從小到大的規則,如果不符合從小到大的規則,就無法進行自動類型轉換,如果這個時候就需要用到數據類型的強制轉換。在強制類型轉換中,代碼要需要進行特殊的格式處理,不能自動完成。
  • Java Set集合的詳解
    哈希值相同equals為false的元素是怎麼存儲呢,就是在同樣的哈希值下順延(可以認為哈希值相同的元素放在一個哈希桶中)。也就是哈希一樣的存一列。圖1:hashCode值不相同的情況圖2:hashCode值相同,但equals不相同的情況。HashSet:通過hashCode值來確定元素在內存中的位置。
  • Java中10大常問的關於String的問題
    在switch語句中使用String作為case條件?從 JDK7 開始,這是可以的java 6 及以前的版本都不支持這樣做// 只在java 7及更高版本有!>6. substring() 方法內部是如何處理的?
  • Java 數組轉 List 的三種方式及對比
    本文介紹Java中數組轉為List三種情況的優劣對比,以及應用場景的對比,以及程式設計師常犯的類型轉換錯誤原因解析。一.最常見方式(未必最佳)通過 Arrays.asList(strArray) 方式,將數組轉換List後,不能對List增刪,只能查改,否則拋異常。
  • Java中關於String類型的10個問題
    字符串對象能否用在switch表達式中?從JDK7開始的話,我們就可以在switch條件表達式中使用字符串了,也就是說7之前的版本是不可以的。// java 7 only!如何將字符串轉換為整型數值?int n = Integer.parseInt("10");如此簡單,經常使用有偶爾也會被遺忘。5. 如何用空格去分隔字符串?我們可以很便捷的使用正則表達式來進行分隔。「\s」就表示空格,還有如」」,」\t」,」\r」,」\n」.
  • Java 中的異常和處理詳解
    前者由於整數除0引發,後者是輸入的數據不能被轉換為int類型引發。Java7中可以將多個異常聲明在一個catch中。    //catch後面的括號定義了異常類型和異常參數。如果異常與之匹配且是最先匹配到的,則虛擬機將使用這個catch塊來處理異常。    //在catch塊中可以使用這個塊的異常參數來獲取異常的相關信息。異常參數是這個catch塊中的局部變量,其它塊不能訪問。
  • 老大給了個新需求:如何將漢字轉換成拼音?我記得有...
    [] toYalePinyinStringArray(char ch)轉換為耶魯拼音:http://zh.wikipedia.org/zh-cn/%E8%80%B6%E9%AD%AF%E6%8B%BC%E9%9F%B3static public String[] toGwoyeuRomatzyhStringArray(char ch)轉換為國語羅馬字:http
  • HTML轉換成PDF,這樣就搞定了!
    文件轉換成輸入流等,也可以遍歷html的DOM節點,提取元素及樣式等。示例本篇示例將以下html文件轉換成pdf<html><head>    <style>        .center_div {            border: 1px solid #404e94;
  • java——Scnner()類下面有幾種方法呢?
    一、Scnner類 Scnner類在java.util包中一個可以使用正則表達式來解析基本類型和字符串的簡單文本掃描器extends Object implements Iterator Scanner 使用分隔符模式將其輸入分解為標記,默認情況下該分隔符模式與空白匹配。然後可以使用不同的 next 方法將得到的標記轉換為不同類型的值。
  • Java 8—Java 10 特性詳解
    而使用並行去遍歷時,數組會被分成多個段,其中每一個都在不同的線程中處理,然後將結果一起輸出。(例如列表)元素進行轉換的。代碼中包含的註解清楚表明了代碼編寫者的意圖。當沒有及時更新或者有遺漏的時候,恰恰是註解中包含的意圖信息,最容易在其他文檔中被丟失。而且將運行時的錯誤轉到編譯階段,不但可以加速開發進程,還可以節省測試時檢查bug的時間。
  • 如何打造一款java遊戲"外掛"
    如何打造一款java遊戲的外掛?javaassist幫你找回飛機大戰遊戲開掛般的感覺...
  • Java基礎教程:Java包裝類概念及應用
    除了Character類之外,其他所有包裝類都具有parseXxx靜態方法可以將字符串參數轉換為對應的基本類型:public static byte parseByte(String s):將字符串參數轉換為對應的byte基本類型。
  • Java基礎面試題簡單總結
    >答:java中的保留字,現在沒有在java中使用11、數組有沒有length()這個方法?重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了。
  • Java中設置classpath、path、JAVA_HOME的作用?
    path:Windows系統執行命令時要搜尋的路徑在dos命令行中執行命令的時候,會先從當前路徑去找,如果找不到,就會到path路徑下去找比如我的jdk裝在D盤下,當我在C盤執行java -version的時候會出現找不到java命令的情況,設置path的目的就是當在