成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java 拼接字符串的幾種寫法

姘擱『 / 583人閱讀

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

用某個(gè)分隔符拼接字符串

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

使用流

StringBuilder

StringJoiner

Guava

代碼 初始數(shù)據(jù)
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);
性能測(cè)試
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");                                                                                                             
    }                                                                                                                                                   
                                                                                                                                                        
}                                                                                                                                                       
執(zhí)行100w次用時(shí)如下:

執(zhí)行10w次用時(shí)如下:

感覺需要根據(jù)運(yùn)算量去決定用哪種方法。
在沒特別要求的情況下,自己還是使用Guava的多一些,因?yàn)榭雌饋砗每葱?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69072.html

相關(guān)文章

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

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

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

    摘要:記錄總結(jié)一下的中引入圖片路徑的幾種書寫方式中靜態(tài)資源的引入機(jī)制關(guān)于靜態(tài)資源的官方文檔靜態(tài)資源可以通過兩種方式進(jìn)行處理在被導(dǎo)入或在中通過相對(duì)路徑以開頭被引用。如果是一個(gè)絕對(duì)路徑,例如,它將會(huì)被保留不變。 vue --version 3.6.3記錄總結(jié)一下的Vue中引入圖片路徑的幾種書寫方式 vue中靜態(tài)資源的引入機(jī)制 Vue.js關(guān)于靜態(tài)資源的官方文檔 靜態(tài)資源可以通過兩種方式進(jìn)行處理...

    adam1q84 評(píng)論0 收藏0
  • 單例模式幾種寫法

    摘要:?jiǎn)卫J揭c(diǎn)私有的構(gòu)造方法指向?qū)嵗乃接徐o態(tài)引用獲取實(shí)例對(duì)象的公有靜態(tài)方法餓漢模式非線程安全私有化構(gòu)造函數(shù)懶漢模式非線程安全私有化構(gòu)造函數(shù)雙重線程鎖檢查單例線程安全私有化構(gòu)造函數(shù)枚舉單例更多關(guān)于的文章請(qǐng)戳這里您的留言意見是對(duì)我最大的支持我的 單例模式要點(diǎn) 私有的構(gòu)造方法 指向?qū)嵗乃接徐o態(tài)引用 獲取實(shí)例對(duì)象的公有靜態(tài)方法 餓漢模式(非線程安全) public class Singl...

    Youngs 評(píng)論0 收藏0
  • overview_java(一)

    摘要:字符串常用的幾種方法,拼接檢測(cè)字符串內(nèi)容是否相等引用是否相等字符串長(zhǎng)度變量名,,區(qū)別字符串常量字符串變量線程安全字符串變量非線程安全具體區(qū)別自行百度,不做詳解八。 重新復(fù)習(xí)下java哦,當(dāng)然一些環(huán)境變量配置之類的就忽略不計(jì)了啊。百度一坨,都是些常規(guī)的東西一:java語(yǔ)句的一些規(guī)則 習(xí)慣很重要 雖然很想跳過,但想想還是稍微記錄一些 1,結(jié)尾要有分號(hào) ...

    liukai90 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<