最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java如何優(yōu)雅實(shí)現(xiàn)數(shù)組切片和拼接操作

 更新時(shí)間:2024年04月27日 10:13:58   作者:ding_haitao  
在做一道算法題的時(shí)候用到數(shù)組合并,并且有性能要求,這里對(duì)Java數(shù)組合并進(jìn)行總結(jié),下面這篇文章主要給大家介紹了關(guān)于Java如何優(yōu)雅實(shí)現(xiàn)數(shù)組切片和拼接操作的相關(guān)資料,需要的朋友可以參考下

一、字符串切片再拼接

某次的業(yè)務(wù)開發(fā)中,需要對(duì)字符串進(jìn)行分割(split)并提取其中的某些部分以進(jìn)行組合。然而,我在Java標(biāo)準(zhǔn)庫中并沒有找到一步到位的API來直接支持這種操作。希望在未來的幾年里,Java能夠在這方面優(yōu)化其數(shù)組操作的API,使得此類常見操作更加便捷。

List<String> linesList = Arrays.stream(content.split("\n")).collect(Collectors.toList());

String line = String.join("", linesList.subList(index1, index2));

二、集合切片再拼接

Java對(duì)于數(shù)組的切片操作,沒有直接提供類似于 JavaScript 中 slice() 方法那樣便捷的功能,只能利用 Arrays.copyOfRange() 方法來實(shí)現(xiàn)數(shù)組的切片。

		int[] originalArray = {1, 2, 3, 4, 5, 6};
        int start = 1; // 起始索引(包含)
        int end = 4;   // 結(jié)束索引(不包含)

        // 使用 Arrays.copyOfRange() 進(jìn)行切片
        int[] slicedArray = Arrays.copyOfRange(originalArray, start, end);

        // slicedArray 現(xiàn)在等于 {2, 3, 4}
        System.out.println(Arrays.toString(slicedArray));

再使用 Stream API 進(jìn)行拼接

		Integer[] array1 = {1, 2, 3, 4, 5};
        Integer[] array2 = {6, 7, 8, 9, 10};

        // 定義切片范圍
        int start1 = 1;
        int end1 = 3;
        int start2 = 2;
        int end2 = 4;

        // 對(duì)數(shù)組進(jìn)行切片
        Integer[] slice1 = Arrays.copyOfRange(array1, start1, end1);
        Integer[] slice2 = Arrays.copyOfRange(array2, start2, end2);

        // 使用 Stream API 進(jìn)行拼接
        Object[] array = Stream.concat(Arrays.stream(slice1), Arrays.stream(slice2))
                .toArray();

        // result 現(xiàn)在等于 {2, 3, 8, 9}
        Arrays.stream(array).forEach(System.out::println);

Stream.concat() 方法會(huì)一次性加載所有元素到內(nèi)存中,因此如果要拼接的數(shù)組非常大,可能會(huì)有性能和內(nèi)存消耗方面的考量。在處理大規(guī)模數(shù)據(jù)時(shí),可能需要考慮其他更高效的數(shù)據(jù)結(jié)構(gòu)或處理方式。

附:Java8中的字符串轉(zhuǎn)數(shù)組再通過指定符號(hào)拼接

1.字符串轉(zhuǎn)換字符串?dāng)?shù)組

String[] nameArr = StringUtils.tokenizeToStringArray(nameAttr, MULTI_VALUE_ATTRIBUTE_DELIMITERS);  // nameAttr="made,in;china,;qqq,.aaa" ,MULTI_VALUE_ATTRIBUTE_DELIMITERS=",;."

將字符串按照指定的字符轉(zhuǎn)換成String[]數(shù)組,如字符串中不包含指定字符,則將整個(gè)字符串放進(jìn)數(shù)組。如指定字符有多個(gè),是分別按所有可能出現(xiàn)的字符來切割的。 字符串: "made,in;china,;qqq,.aaa"     指定字符: ",;."       返回?cái)?shù)組:[made, in, china, qqq, aaa]

/**
 * Tokenize the given {@code String} into a {@code String} array via a
 * {@link StringTokenizer}.
 * <p>Trims tokens and omits empty tokens.
 * <p>The given {@code delimiters} string can consist of any number of
 * delimiter characters. Each of those characters can be used to separate
 * tokens. A delimiter is always a single character; for multi-character
 * delimiters, consider using {@link #delimitedListToStringArray}.
 * @param str the {@code String} to tokenize (potentially {@code null} or empty)
 * @param delimiters the delimiter characters, assembled as a {@code String}
 * (each of the characters is individually considered as a delimiter)
 * @return an array of the tokens
 * @see java.util.StringTokenizer
 * @see String#trim()
 * @see #delimitedListToStringArray
 */
public static String[] tokenizeToStringArray(@Nullable String str, String delimiters) {
    return tokenizeToStringArray(str, delimiters, true, true);
}

 2.字符串?dāng)?shù)組通過某符號(hào)連接

Collectors.joining 收集器 支持靈活的參數(shù)配置,可以指定字符串連接時(shí)的 分隔符,前綴 和 后綴 字符串

Stream<String> stream = Arrays.stream(nameArr);
String result = stream.collect(Collectors.joining("/", "[", "]"));
System.out.println(result);
// 輸出字符串 [made/in/china]

總結(jié) 

到此這篇關(guān)于Java如何優(yōu)雅實(shí)現(xiàn)數(shù)組切片和拼接操作的文章就介紹到這了,更多相關(guān)Java數(shù)組切片和拼接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Java如何實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈?zhǔn)絻?chǔ)存

    利用Java如何實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈?zhǔn)絻?chǔ)存

    鏈?zhǔn)浇Y(jié)構(gòu)不要求邏輯上相鄰的節(jié)點(diǎn)在物理位置上也相鄰,節(jié)點(diǎn)間的邏輯關(guān)系是由附加的指針字段表示的,通常借助于程序設(shè)計(jì)中的指針結(jié)構(gòu)來實(shí)現(xiàn),這篇文章主要給大家介紹了關(guān)于利用Java如何實(shí)現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈?zhǔn)絻?chǔ)存的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • 詳解JAVA類加載機(jī)制(推薦)

    詳解JAVA類加載機(jī)制(推薦)

    這篇文章主要介紹了JAVA類加載機(jī)制的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • SpringBoot整合WxJava開啟消息推送的實(shí)現(xiàn)

    SpringBoot整合WxJava開啟消息推送的實(shí)現(xiàn)

    本文主要介紹了SpringBoot整合WxJava開啟消息推送,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • EasyCode整合mybatis-plus的配置詳解

    EasyCode整合mybatis-plus的配置詳解

    本文主要介紹了EasyCode整合mybatis-plus的配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • java多線程實(shí)現(xiàn)同步鎖賣票實(shí)戰(zhàn)項(xiàng)目

    java多線程實(shí)現(xiàn)同步鎖賣票實(shí)戰(zhàn)項(xiàng)目

    本文主要介紹了java多線程實(shí)現(xiàn)同步鎖賣票實(shí)戰(zhàn)項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • java selenium XPath 定位實(shí)現(xiàn)方法

    java selenium XPath 定位實(shí)現(xiàn)方法

    本文主要介紹java selenium XPath,這里整理了XPath的資料,并附實(shí)現(xiàn)方法,有需要的小伙伴可以參考下
    2016-08-08
  • Java Character類對(duì)單個(gè)字符操作原理解析

    Java Character類對(duì)單個(gè)字符操作原理解析

    這篇文章主要介紹了Java Character類對(duì)單個(gè)字符操作原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 詳解Java如何優(yōu)雅的實(shí)現(xiàn)字典翻譯

    詳解Java如何優(yōu)雅的實(shí)現(xiàn)字典翻譯

    當(dāng)我們?cè)贘ava應(yīng)用程序中需要對(duì)字典屬性進(jìn)行轉(zhuǎn)換返回給前端時(shí),如何簡單、方便、并且優(yōu)雅的處理是一個(gè)重要問題。在本文中,我們將介紹如何使用Java中的序列化機(jī)制來優(yōu)雅地實(shí)現(xiàn)字典值的翻譯,從而簡化開發(fā)
    2023-04-04
  • IDEA2020.1同步系統(tǒng)設(shè)置到GitHub的方法

    IDEA2020.1同步系統(tǒng)設(shè)置到GitHub的方法

    這篇文章主要介紹了IDEA2020.1同步系統(tǒng)設(shè)置到GitHub的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • java 線程池的實(shí)現(xiàn)原理、優(yōu)點(diǎn)與風(fēng)險(xiǎn)、以及4種線程池實(shí)現(xiàn)

    java 線程池的實(shí)現(xiàn)原理、優(yōu)點(diǎn)與風(fēng)險(xiǎn)、以及4種線程池實(shí)現(xiàn)

    這篇文章主要介紹了java 線程池的實(shí)現(xiàn)原理、優(yōu)點(diǎn)與風(fēng)險(xiǎn)、以及4種線程池實(shí)現(xiàn)包括了:配置線程池大小配置,線程池的實(shí)現(xiàn)原理等,需要的朋友可以參考下
    2023-02-02

最新評(píng)論

太白县| 枞阳县| 平和县| 泰和县| 加查县| 勐海县| 抚宁县| 治县。| 乐山市| 临桂县| 明光市| 和林格尔县| 即墨市| 高碑店市| 樟树市| 休宁县| 壶关县| 绿春县| 黄陵县| 韩城市| 德清县| 高雄县| 那曲县| 邹平县| 阜宁县| 丁青县| 康平县| 潜江市| 太仓市| 合江县| 历史| 钟山县| 余姚市| 团风县| 古浪县| 漯河市| 庆城县| 峡江县| 韩城市| 赞皇县| 颍上县|