大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 一文了解Java常用算法

一文了解Java常用算法

更新時間:2022-11-24 11:22:44 來源:動力節點 瀏覽1189次

在本教程中,我們將借助示例了解 Java 集合框架提供的不同算法。Java 集合框架提供了多種算法,可用于操作存儲在數據結構中的元素。Java 中的算法是靜態方法,可用于對集合執行各種操作。由于算法可用于各種集合,因此這些算法也稱為通用算法。讓我們看看集合框架中可用的不同方法的實現。

1.使用sort()排序

集合框架提供的sort()方法用于對元素進行排序。例如,

import java.util.ArrayList;
import java.util.Collections;
class Main {
    public static void main(String[] args) {
        // Creating an array list
        ArrayList<Integer> numbers = new ArrayList<>();
        // Add elements
        numbers.add(4);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Unsorted ArrayList: " + numbers);
        // Using the sort() method
        Collections.sort(numbers);
        System.out.println("Sorted ArrayList: " + numbers);
    }
}

輸出

未排序的數組列表:[4, 2, 3]
排序的數組列表:[2, 3, 4]

這里排序以自然順序(升序)發生。sort()但是,我們可以使用Comparator 接口自定義方法的排序順序。

2. 使用 shuffle() 進行洗牌

Java 集合框架的shuffle()方法用于破壞數據結構中存在的任何種類的順序。它與排序相反。例如,

import java.util.ArrayList;
import java.util.Collections;
class Main {
    public static void main(String[] args) {
        // Creating an array list
        ArrayList<Integer> numbers = new ArrayList<>();
        // Add elements
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("Sorted ArrayList: " + numbers);
        // Using the shuffle() method
        Collections.shuffle(numbers);
        System.out.println("ArrayList using shuffle: " + numbers);
    }
}

輸出

排序的數組列表:[1, 2, 3]
ArrayList 使用隨機播放:[2, 1, 3]

當我們運行程序時,該shuffle()方法將返回一個隨機輸出。

洗牌算法主要用在我們希望隨機輸出的游戲中。

3. 常規數據操作

在 Java 中,集合框架提供了可用于操作數據的不同方法。

reverse()- 顛倒元素的順序

fill()- 用指定值替換集合中的每個元素

copy()- 創建從指定源到目標的元素副本

swap()- 交換集合中兩個元素的位置

addAll()- 將一個集合的所有元素添加到另一個集合

例如,

import java.util.Collections;
import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // Creating an ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        System.out.println("ArrayList1: " + numbers);
        // Using reverse()
        Collections.reverse(numbers);
        System.out.println("Reversed ArrayList1: " + numbers);
        // Using swap()
        Collections.swap(numbers, 0, 1);
        System.out.println("ArrayList1 using swap(): " + numbers);
        ArrayList<Integer> newNumbers = new ArrayList<>();
        // Using addAll
        newNumbers.addAll(numbers);
        System.out.println("ArrayList2 using addAll(): " + newNumbers);
        // Using fill()
        Collections.fill(numbers, 0);
        System.out.println("ArrayList1 using fill(): " + numbers);
        // Using copy()
        Collections.copy(newNumbers, numbers);
        System.out.println("ArrayList2 using copy(): " + newNumbers);
    }
}

輸出

ArrayList1: [1, 2]
反轉 ArrayList1: [2, 1]
ArrayList1 使用 swap(): [1, 2]
ArrayList2 使用 addALL(): [1, 2]
ArrayList1 使用 fill(): [0, 0]
ArrayList2 使用 copy(): [0, 0]

注意:在執行該copy()方法時,兩個列表的大小應該相同。

4. 使用 binarySearch() 搜索

Java 集合框架的binarySearch()方法搜索指定的元素。它返回元素在指定集合中的位置。例如,

import java.util.Collections;
import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // Creating an ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        // Using binarySearch()
        int pos = Collections.binarySearch(numbers, 3);
        System.out.println("The position of 3 is " + pos);
    }
}

輸出

3的位置是2。

注意:在執行該binarySearch()方法之前應該對集合進行排序。

5.尋找極值

Java 集合框架的min()和max()方法分別用于查找最小和最大元素。例如,

import java.util.Collections;
import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // Creating an ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        // Using min()
        int min = Collections.min(numbers);
        System.out.println("Minimum Element: " + min);
        // Using max()
        int max = Collections.max(numbers);
        System.out.println("Maximum Element: " + max);
    }
}

輸出

最小元素:1
最大元素:3

以上就是關于“一文了解Java常用算法”的介紹,大家如果感興趣可以關注動力節點推出的Java算法視頻教程,全套免費下載,這是一套超級詳細的數據結構與算法基礎視頻教程,本套視頻教程適合數據結構與算法零基礎學員學習,且是你學習數據結構與算法的好幫手。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 9999毛片免费看 | 视频在线a | 久久爆操| 亚洲美女网址 | 成人毛片免费观看视频在线 | 一级白嫩美女毛片免费 | 天天摸日日舔 | 四虎黄网| 国产成人系列 | 国产成人99精品免费观看 | 九九视频在线观看视频6偷拍 | 尹人久久久香蕉精品 | 日韩色吧 | 一区二区三区在线免费 | 欧美国产日韩在线 | 日韩一区二区三区不卡视频 | 欧美久久精品 | 奇米视频777 | 四虎1515hhwocw| 豆国产93在线 | 亚洲 | 日韩不卡一区二区三区 | 欧美日韩精品一区二区在线线 | 精品国产乱码一区二区三区 | 在线播放性xxx欧美 在线播放亚洲 | 91在线短视频 | 一区二区成人国产精品 | 亚洲人成网站999久久久综合 | 中文字幕中文字幕中中文 | 国产麻豆永久视频 | 久久久视频在线 | 亚洲精品美女国产一区 | 在线播放免费一级毛片欧美 | 欧美精品专区第1页 | 久久日本精品99久久久 | 成人特黄午夜性a一级毛片 成人特级毛片69免费观看 | 亚洲一区二区日韩欧美gif | 中文字幕精品一区二区三区在线 | 97午夜理伦片在线影院 | 国产成人精品视频一区二区不卡 | 中文字幕一区二区三区在线播放 | 黄色的网站在线观看 |