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

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

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

一、字符串切片再拼接

某次的業(yè)務開發(fā)中,需要對字符串進行分割(split)并提取其中的某些部分以進行組合。然而,我在Java標準庫中并沒有找到一步到位的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對于數(shù)組的切片操作,沒有直接提供類似于 JavaScript 中 slice() 方法那樣便捷的功能,只能利用 Arrays.copyOfRange() 方法來實現(xiàn)數(shù)組的切片。

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

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

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

再使用 Stream API 進行拼接

		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;

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

        // 使用 Stream API 進行拼接
        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() 方法會一次性加載所有元素到內(nèi)存中,因此如果要拼接的數(shù)組非常大,可能會有性能和內(nèi)存消耗方面的考量。在處理大規(guī)模數(shù)據(jù)時,可能需要考慮其他更高效的數(shù)據(jù)結(jié)構(gòu)或處理方式。

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

1.字符串轉(zhuǎn)換字符串數(shù)組

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

將字符串按照指定的字符轉(zhuǎn)換成String[]數(shù)組,如字符串中不包含指定字符,則將整個字符串放進數(shù)組。如指定字符有多個,是分別按所有可能出現(xiàn)的字符來切割的。 字符串: "made,in;china,;qqq,.aaa"     指定字符: ",;."       返回數(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.字符串數(shù)組通過某符號連接

Collectors.joining 收集器 支持靈活的參數(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)雅實現(xiàn)數(shù)組切片和拼接操作的文章就介紹到這了,更多相關(guān)Java數(shù)組切片和拼接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Java如何實現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈式儲存

    利用Java如何實現(xiàn)將二維數(shù)組轉(zhuǎn)化為鏈式儲存

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

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

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

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

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

    EasyCode整合mybatis-plus的配置詳解

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

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

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

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

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

    Java Character類對單個字符操作原理解析

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

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

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

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

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

    java 線程池的實現(xiàn)原理、優(yōu)點與風險、以及4種線程池實現(xiàn)

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

最新評論

长宁区| 米泉市| 玉林市| 墨玉县| 婺源县| 太康县| 会昌县| 德化县| 呼玛县| 新泰市| 沛县| 台安县| 治多县| 吴桥县| 隆德县| 曲靖市| 长葛市| 阜新| 黔江区| 汶上县| 尉犁县| 明光市| 陇川县| 望奎县| 江北区| 临朐县| 桃园市| 英山县| 汽车| 泸溪县| 平山县| 固始县| 龙里县| 临城县| 信阳市| 洱源县| 平顺县| 阿尔山市| 郁南县| 工布江达县| 平罗县|