国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java 拼接字符串的幾種寫法

姘擱『 / 573人閱讀

摘要:用某個分隔符拼接字符串寫程序時經常遇到需要將集合的元素拼接成字符串,然后存入數據庫的情況。下邊是我使用過的幾種方式使用流代碼初始數據使用流性能測試使用流使用流執行次用時如下執行次用時如下感覺需要根據運算量去決定用哪種方法。

用某個分隔符拼接字符串

寫程序時經常遇到需要將集合的元素拼接成字符串,然后存入數據庫的情況。
下邊是我使用過的幾種方式

使用流

StringBuilder

StringJoiner

Guava

代碼 初始數據
List list = Arrays.asList("Luffy", "Zoro", "Nami", 
                                  "Usopp", "Sanji", "Chopper", 
                                  "Robin", "FRANKY", "BROOK");
1. 使用流
String result = list.stream().collect(Collectors.joining(","));
2. StringBuilder
StringBuilder strBur = new StringBuilder();
list.forEach(val -> {
    strBur.append(val).append(",");
});
strBur.toString();
3. StringJoiner
StringJoiner strJor = new StringJoiner(",");
for(String str : list) {
    strJor.add(str);
}
strJor.toString();
4. Guava
String result = Joiner.on(",").join(list);
性能測試
package com.cck;                                                                                                                                                                                                                                                                                                      
import java.util.Arrays;                                                                                                                                
import java.util.List;                                                                                                                                  
import java.util.StringJoiner;                                                                                                                          
import java.util.function.Consumer;                                                                                                                     
import java.util.stream.Collectors;                                                                                                                     
                                                                                                                                                        
import com.google.common.base.Joiner;                                                                                                                   
                                                                                                                                                        
public class Test {                                                                                                                                     
                                                                                                                                                        
                                                                                                                                                        
    // 1.使用流                                                                                                                                            
    public static Consumer> testStream() {                                                                                                 
                                                                                                                                                        
        return (list) -> {                                                                                                                              
                                                                                                                                                        
            String result = list.stream().collect(Collectors.joining(","));                                                                             
        };                                                                                                                                              
    }                                                                                                                                                   
                                                                                                                                                        
    // 2.StringBuilder                                                                                                                                  
    public static Consumer> testStringBuilder() {                                                                                          
                                                                                                                                                        
        return (list) -> {                                                                                                                              
                                                                                                                                                        
            StringBuilder strBur = new StringBuilder();                                                                                                 
            list.forEach(val -> {                                                                                                                       
                strBur.append(val).append(",");                                                                                                         
            });                                                                                                                                         
            strBur.toString();                                                                                                                          
        };                                                                                                                                              
    }                                                                                                                                                   
                                                                                                                                                        
    // 3.StringJoiner                                                                                                                                   
    public static Consumer> testStringJoiner() {                                                                                           
                                                                                                                                                        
        return (list) -> {                                                                                                                              
                                                                                                                                                        
            StringJoiner strjor = new StringJoiner(",");                                                                                                
            for(String str : list) {                                                                                                                    
                strjor.add(str);                                                                                                                        
            }                                                                                                                                           
            strjor.toString();                                                                                                                          
        };                                                                                                                                              
    }                                                                                                                                                   
                                                                                                                                                        
    // 4.Guava                                                                                                                                          
    public static Consumer> testGuava() {                                                                                                  
                                                                                                                                                        
        return (list) -> {                                                                                                                              
                                                                                                                                                        
            String result = Joiner.on(",").join(list);                                                                                                  
        };                                                                                                                                              
    }                                                                                                                                                   
                                                                                                                                                        
    public static void test(Consumer> consumer, 
                                List list, String msg) {                                                           
                                                                                                                                                        
        long start = System.currentTimeMillis();                                                                                                        
        for (int i = 0; i < 1000000; i++) {                                                                                                             
            consumer.accept(list);                                                                                                                      
        }                                                                                                                                               
        long end = System.currentTimeMillis();                                                                                                          
                                                                                                                                                        
        System.out.println(msg + " need time : " + (end - start));                                                                                      
    }                                                                                                                                                   
                                                                                                                                                        
    public static void main(String[] args) {                                                                                                            
                                                                                                                                                        
        List list = Arrays.asList("Luffy", "Zoro", "Nami", 
                                          "Usopp", "Sanji", "Chopper", 
                                          "Robin", "FRANKY", "BROOK");   
                                                                   
        test(testStream(),        list, "1.使用流");                                                                                                              
        test(testStringBuilder(), list, "2.StringBuilder");                                                                                             
        test(testStringJoiner(),  list, "3.StringJoiner");                                                                                               
        test(testGuava(),         list, "4.Guava");                                                                                                             
    }                                                                                                                                                   
                                                                                                                                                        
}                                                                                                                                                       
執行100w次用時如下:

執行10w次用時如下:

感覺需要根據運算量去決定用哪種方法。
在沒特別要求的情況下,自己還是使用Guava的多一些,因為看起來好看些。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69072.html

相關文章

  • sass筆記-4|像寫腳本一樣寫Sass,把能交給Sass辦的都交給它

    摘要:布爾值布爾值主要用于的分支結構中判斷使用,布爾值的操作符有和,就是與或非。此外比較操作符只能作用于數字,但是可作用于所有類型,這些操作符返回布爾值。 Sass筆記關于sass的基礎部分已經寫完,這一篇介紹Sass的高級特性——腳本特性。Sass能做很多事讓樣式表更智能,我們先會看到Sass眼中的數據類型,在這些數據類型上會有可進行的操作,此外,Sass中的內置函數(尤其是顏色函數)能幫...

    AnthonyHan 評論0 收藏0
  • Vue.js中引入圖片路徑幾種方式

    摘要:記錄總結一下的中引入圖片路徑的幾種書寫方式中靜態資源的引入機制關于靜態資源的官方文檔靜態資源可以通過兩種方式進行處理在被導入或在中通過相對路徑以開頭被引用。如果是一個絕對路徑,例如,它將會被保留不變。 vue --version 3.6.3記錄總結一下的Vue中引入圖片路徑的幾種書寫方式 vue中靜態資源的引入機制 Vue.js關于靜態資源的官方文檔 靜態資源可以通過兩種方式進行處理...

    adam1q84 評論0 收藏0
  • 單例模式幾種寫法

    摘要:單例模式要點私有的構造方法指向實例的私有靜態引用獲取實例對象的公有靜態方法餓漢模式非線程安全私有化構造函數懶漢模式非線程安全私有化構造函數雙重線程鎖檢查單例線程安全私有化構造函數枚舉單例更多關于的文章請戳這里您的留言意見是對我最大的支持我的 單例模式要點 私有的構造方法 指向實例的私有靜態引用 獲取實例對象的公有靜態方法 餓漢模式(非線程安全) public class Singl...

    Youngs 評論0 收藏0
  • overview_java(一)

    摘要:字符串常用的幾種方法,拼接檢測字符串內容是否相等引用是否相等字符串長度變量名,,區別字符串常量字符串變量線程安全字符串變量非線程安全具體區別自行百度,不做詳解八。 重新復習下java哦,當然一些環境變量配置之類的就忽略不計了啊。百度一坨,都是些常規的東西一:java語句的一些規則 習慣很重要 雖然很想跳過,但想想還是稍微記錄一些 1,結尾要有分號 ...

    liukai90 評論0 收藏0

發表評論

0條評論

姘擱『

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<