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

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

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

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

String 字符串

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

StringBuffer/StringBuilder

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

Stack 棧

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

Array 數(shù)組

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

當區(qū)間左端點相同的時候,按照右端點降序排序

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);

復制新數(shù)組,并指定長度 (例: 將數(shù)組array復制一個新數(shù)組, 并指定長度為length)

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

List 列表

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

Queue 隊列

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

PriorityQueue 優(yōu)先隊列

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

Map/HashMap

  • Map是接口,HashMap是具體實現(xiàn)
  • HashMap 實現(xiàn)了 Map 接口,根據(jù)鍵的 HashCode 值存儲數(shù)據(jù),具有很快的訪問速度,最多允許一條記錄的鍵為 null,不支持線程同步。
  • 初始化
  • highlighter- lasso
Map<T, T> map = new HashMap();
  • 獲取指定鍵的值
  • map.get(Object o);
  • 添加一個映射
  • map.put(K key, V value)
  • 是否包含指定的key
  • containsKey(Object key) \\如果此映射包含指定鍵的映射關系,則返回 true
  • 是否包含指定的value
  • containsValue(Object value) \\如果此映射將一個或多個鍵映射到指定值,則返回 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()+" 編號: "+m.getValue());
}

HashSet 集合

  • HashSet 基于 HashMap 來實現(xiàn)的,是一個不允許有重復元素的集合。
  • HashSet 允許有 null 值。
  • 初始化
  • HashSet<T> set = new HashSet<>();
  • 添加元素
  • set.add(Object o);
  • 判斷元素是否存在
  • set.contains(Object o);
  • 刪除元素
  • set.remove(Object o);\
  • 計算元素數(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");     // 重復的元素不會被添加
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

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

相關文章

  • spring Data jpa簡介_動力節(jié)點Java學院整理

    spring Data jpa簡介_動力節(jié)點Java學院整理

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

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

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

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

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

    rocketmq消費負載均衡--push消費詳解

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

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

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

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

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

    使用jmeter實現(xiàn)對jar包的調用方式

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

    Jackson使用示例-Bean、XML、Json之間相互轉換

    Jackson是一個強大工具,可用于Json、XML、實體之間的相互轉換,JacksonXmlElementWrapper用于指定List等集合類,外圍標簽名,JacksonXmlProperty指定包裝標簽名,或者指定標簽內部屬性名,JacksonXmlRootElement指定生成xml根標簽的名字,JacksonXmlText指定當前這個值
    2024-05-05
  • Java報錯Java.net.SocketTimeoutException的幾種解決方法

    Java報錯Java.net.SocketTimeoutException的幾種解決方法

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

    通過入門demo簡單了解netty使用方法

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

最新評論

澳门| 喀什市| 安远县| 吐鲁番市| 红安县| 新营市| 卢龙县| 翁牛特旗| 英山县| 徐州市| 金寨县| 云和县| 从化市| 慈利县| 江永县| 岳阳市| 千阳县| 都匀市| 汕尾市| 洪江市| 门头沟区| 巴楚县| 海宁市| 盘山县| 星座| 旬阳县| 南丹县| 碌曲县| 登封市| 杭锦后旗| 桃源县| 兴仁县| 荥经县| 义乌市| 泾川县| 鄂州市| 鄂托克前旗| 公安县| 襄垣县| 惠东县| 历史|