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

Java算法題常用函數(shù)詳解

 更新時(shí)間:2025年11月18日 08:47:17   作者:夏蟲語(yǔ)冰&  
這篇文章主要介紹了Java中常用的字符串操作、字符串轉(zhuǎn)換、字符串處理、字符串緩沖區(qū)、棧、數(shù)組、列表、隊(duì)列、優(yōu)先隊(duì)列、Map和HashMap的常用函數(shù)和操作,感興趣的朋友跟隨小編一起看看吧

Java算法題常用函數(shù)

String 字符串

  • charAt(int index)方法用于返回指定索引處的字符。索引范圍為從 0 到 length() - 1。
  • length() 方法用于返回字符串的長(zhǎng)度。空字符串的長(zhǎng)度返回 0。
  • 將String字符串轉(zhuǎn)化成char數(shù)組
  • char[] chars = string.toCharArray();
  • char數(shù)組轉(zhuǎn)String
  • new String (charArray); // charArray => char[] charArray
  • 返回一個(gè)新字符串,它是此字符串的一個(gè)子字符串
  • String sub = str.substring(int start, int end)
  • 指定字符在此字符串中第一次出現(xiàn)處的索引
  • str.indexOf(int ch)
  • 刪除字符串前后的空白符
  • str.trim()

StringBuffer/StringBuilder

  • 在使用 StringBuffer 類時(shí),每次都會(huì)對(duì) StringBuffer 對(duì)象本身進(jìn)行操作,而不是生成新的對(duì)象,所以如果需要對(duì)字符串進(jìn)行修改推薦使用 StringBuffer。
  • StringBuilder 類在 Java 5 中被提出,兩者最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問(wèn))。
  • 由于 StringBuilder 相較于 StringBuffer 有速度優(yōu)勢(shì),所以多數(shù)情況下建議使用 StringBuilder 類。
  • 初始化
  • StringBuilder sb = new StringBuilder(length)
  • 返回長(zhǎng)度(字符數(shù))
  • sb.length()
  • 將指定的字符串追加到此字符序列
  • sb.append(String s)
  • 將此字符序列用其反轉(zhuǎn)形式取代
  • sb.reverse()
  • 返回一個(gè)新的 String,它包含此序列當(dāng)前所包含的字符子序列
  • sb.substring(int start, int end)
  • 轉(zhuǎn)換成String
  • String str = sb.toString();

Stack 棧

  • 初始化
  • Stack<?> stack = new Stack();
  • 判斷堆棧是否為空
  • stack.isEmpty()
  • 查看堆棧頂部的對(duì)象,但不從堆棧中移除它
  • stack.peek()
  • 移除堆棧頂部的對(duì)象,并作為此函數(shù)的值返回該對(duì)象
  • stack.pop()
  • 元素壓入堆棧頂部
  • stack.push()
  • 返回對(duì)象在堆棧中的位置,以 1 為基數(shù)
  • int pos = stack.search()

Array 數(shù)組

  • 初始化長(zhǎng)度為size的數(shù)組
  • int[] array = new int[size]
  • 數(shù)組長(zhǎng)度
  • array.length
  • 數(shù)組的排序
  • Arrays.sort(array)
  • 二維int類型數(shù)組的排序按首個(gè)數(shù)字升序排序 (lambda表達(dá)式寫法)
  • Arrays.sort(array, (v1, v2) -> v1[0] - v2[0])
  • ps: 匿名內(nèi)部類寫法
Arrays.sort(array, new Comparator<int[]>() {
    @Override
    public int compare(int[] v1, int[] v2) {
        // 與 Lambda 表達(dá)式邏輯完全一致
        return v1[0] - v2[0];
    }
});

當(dāng)區(qū)間左端點(diǎn)相同的時(shí)候,按照右端點(diǎn)降序排序

Arrays.sort(intervals, (o1, o2) -> {
    if(o1[0] == o2[0]){
        return o1[1] - o2[1];
    }
    return o2[0] - o1[0];
});

用于一維數(shù)組的初始化或者填充

Arrays.fill(array, 1);

復(fù)制新數(shù)組,并指定長(zhǎng)度 (例: 將數(shù)組array復(fù)制一個(gè)新數(shù)組, 并指定長(zhǎng)度為length)

int[] copy = Arrays.copyOf(array, length)

List 列表

  • 以下情況使用 ArrayList :
    • 頻繁訪問(wèn)列表中的某一個(gè)元素(隨機(jī)訪問(wèn))。
    • 只需要在列表末尾進(jìn)行添加和刪除元素操作。
  • 以下情況使用 LinkedList :
    • 你需要通過(guò)循環(huán)迭代來(lái)訪問(wèn)列表中的某些元素。
    • 需要頻繁的在列表開頭、中間、末尾等位置進(jìn)行添加刪除元素操作。
  • 初始化
List<T> list = new LinkedList<>();
List<T> list = new ArrayList<>();
  • 列表的尾部插入指定元素
  • list.add(Object o);
  • 列表的尾部移除元素(一般用于dfs算法 進(jìn)行回溯)
  • list.remove(list.size() - 1); //刪除最后一個(gè)元素
  • 判斷集合中是否存在這個(gè)元素
  • list.contains(Object o); // 返回true 或 false
  • 將數(shù)組轉(zhuǎn)為L(zhǎng)ist
  • List<String> names = Arrays.asList(new String[]{"zhangsan","li"});
  • List轉(zhuǎn)為數(shù)組
  • T[] array = list.toArray();
  • 集合排序
  • Collections.sort(list); // 返回值為void

Queue 隊(duì)列

  • 初始化
  • Queue<Integer> queue = new LinkedList()
  • 添加元素
  • queue.offer(Object o);
  • 刪除隊(duì)列中的第一個(gè)元素
  • queue.poll(Object o); // 返回隊(duì)列的第一個(gè)元素
  • 判斷是否為空
  • queue.isEmpty();
  • 獲取隊(duì)列的大小
  • queue.size();

PriorityQueue 優(yōu)先隊(duì)列

  • 優(yōu)先級(jí)隊(duì)列并不是隊(duì)列中所有的元素都是按照優(yōu)先級(jí)排放的,只能保證出隊(duì)順序是按照優(yōu)先級(jí)進(jìn)行的
  • 初始化
Queue<Integer> queue = new PriorityQueue<>((a, b) -> b - a);

Map/HashMap

  • Map是接口,HashMap是具體實(shí)現(xiàn)
  • HashMap 實(shí)現(xiàn)了 Map 接口,根據(jù)鍵的 HashCode 值存儲(chǔ)數(shù)據(jù),具有很快的訪問(wèn)速度,最多允許一條記錄的鍵為 null,不支持線程同步。
  • 初始化
  • highlighter- lasso
Map<T, T> map = new HashMap();
  • 獲取指定鍵的值
  • map.get(Object o);
  • 添加一個(gè)映射
  • map.put(K key, V value)
  • 是否包含指定的key
  • containsKey(Object key) \\如果此映射包含指定鍵的映射關(guān)系,則返回 true
  • 是否包含指定的value
  • containsValue(Object value) \\如果此映射將一個(gè)或多個(gè)鍵映射到指定值,則返回 true
  • Map遍歷
Map<String, Integer> map = new HashMap();
map.put("zhangsan",1);
map.put("li",2);
map.put("wangwu",2);
for (Map.Entry<String, Integer> m: map.entrySet()) {
    System.out.println("姓名: "+m.getKey()+" 編號(hào): "+m.getValue());
}

HashSet 集合

  • HashSet 基于 HashMap 來(lái)實(shí)現(xiàn)的,是一個(gè)不允許有重復(fù)元素的集合。
  • HashSet 允許有 null 值。
  • 初始化
  • HashSet<T> set = new HashSet<>();
  • 添加元素
  • set.add(Object o);
  • 判斷元素是否存在
  • set.contains(Object o);
  • 刪除元素
  • set.remove(Object o);\
  • 計(jì)算元素?cái)?shù)量
  • set.size()
  • 迭代
public class RunoobTest {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Runoob");     // 重復(fù)的元素不會(huì)被添加
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

到此這篇關(guān)于Java算法題常用函數(shù) 的文章就介紹到這了,更多相關(guān)java算法常用函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring Data jpa簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    spring Data jpa簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了spring Data jpa簡(jiǎn)介的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • 詳解Java中int和Integer的區(qū)別

    詳解Java中int和Integer的區(qū)別

    這篇文章主要介紹了Java中int和Integer的區(qū)別文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java中notify和notifyAll的區(qū)別及何時(shí)使用

    Java中notify和notifyAll的區(qū)別及何時(shí)使用

    本文主要介紹了Java中notify和notifyAll的區(qū)別及何時(shí)使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • rocketmq消費(fèi)負(fù)載均衡--push消費(fèi)詳解

    rocketmq消費(fèi)負(fù)載均衡--push消費(fèi)詳解

    這篇文章主要介紹了rocketmq消費(fèi)負(fù)載均衡--push消費(fèi)詳解,本文介紹了DefaultMQPushConsumerImpl消費(fèi)者,客戶端負(fù)載均衡相關(guān)知識(shí)點(diǎn)。,需要的朋友可以參考下
    2019-06-06
  • Spring Boot Maven 插件如何構(gòu)建可執(zhí)行 JAR 的核心配置

    Spring Boot Maven 插件如何構(gòu)建可執(zhí)行 JAR 的核心

    SpringBoot核心Maven插件,用于生成可執(zhí)行JAR/WAR,內(nèi)置服務(wù)器簡(jiǎn)化部署,支持熱部署、多環(huán)境配置及依賴管理,提升開發(fā)效率與構(gòu)建靈活性,本文給大家介紹Spring Boot Maven 插件如何構(gòu)建可執(zhí)行JAR的核心配置,感興趣的朋友一起看看吧
    2025-07-07
  • java如何根據(jù)用戶請(qǐng)求獲取ip地址并解析省市信息

    java如何根據(jù)用戶請(qǐng)求獲取ip地址并解析省市信息

    根據(jù)當(dāng)前用戶本地IP地址,查詢IP地址庫(kù),獲取IP所在的省市信息,目前有多種方式實(shí)現(xiàn)該功能,這篇文章主要給大家介紹了關(guān)于java如何根據(jù)用戶請(qǐng)求獲取ip地址并解析省市信息的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • 使用jmeter實(shí)現(xiàn)對(duì)jar包的調(diào)用方式

    使用jmeter實(shí)現(xiàn)對(duì)jar包的調(diào)用方式

    這篇文章主要介紹了使用jmeter實(shí)現(xiàn)對(duì)jar包的調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Jackson使用示例-Bean、XML、Json之間相互轉(zhuǎn)換

    Jackson使用示例-Bean、XML、Json之間相互轉(zhuǎn)換

    Jackson是一個(gè)強(qiáng)大工具,可用于Json、XML、實(shí)體之間的相互轉(zhuǎn)換,JacksonXmlElementWrapper用于指定List等集合類,外圍標(biāo)簽名,JacksonXmlProperty指定包裝標(biāo)簽名,或者指定標(biāo)簽內(nèi)部屬性名,JacksonXmlRootElement指定生成xml根標(biāo)簽的名字,JacksonXmlText指定當(dāng)前這個(gè)值
    2024-05-05
  • Java報(bào)錯(cuò)Java.net.SocketTimeoutException的幾種解決方法

    Java報(bào)錯(cuò)Java.net.SocketTimeoutException的幾種解決方法

    在 Java 網(wǎng)絡(luò)編程中,SocketTimeoutException 通常表示在進(jìn)行網(wǎng)絡(luò)操作時(shí),等待響應(yīng)的時(shí)間超過(guò)了設(shè)定的超時(shí)時(shí)間,本文將深入探討 Java.net.SocketTimeoutException 的問(wèn)題,并為開發(fā)者和環(huán)境配置者提供詳細(xì)的解決方案,需要的朋友可以參考下
    2024-10-10
  • 通過(guò)入門demo簡(jiǎn)單了解netty使用方法

    通過(guò)入門demo簡(jiǎn)單了解netty使用方法

    這篇文章主要介紹了通過(guò)入門demo簡(jiǎn)單了解netty使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論

柘荣县| 菏泽市| 从化市| 灵石县| 溆浦县| 渝中区| 津南区| 肇州县| 阿荣旗| 沭阳县| 东城区| 临猗县| 嘉义市| 京山县| 东台市| 志丹县| 山丹县| 新郑市| 庆城县| 周宁县| 彰化市| 汶川县| 宜兴市| 叶城县| 夏邑县| 阿克苏市| 年辖:市辖区| 北京市| 太仓市| 湘潭市| 萨迦县| 巴马| 温州市| 洛扎县| 嘉义市| 宝坻区| 临安市| 宁海县| 怀宁县| 德清县| 新民市|