Java Algorithms(算法)

日博365官网 ⌛ 2026-06-16 03:01:59 👤 admin 👁️ 9231 ❤️ 430
Java Algorithms(算法)

Java Iterator 接口Java HashSet 类

Java Algorithms(算法)

在本教程中,我们将借助示例学习Java集合框架提供的不同算法。

Java集合框架提供了各种算法,可用于处理存储在数据结构中的元素。

Java中的算法是静态方法,可用于对集合执行各种操作。

由于算法可用于各种集合,因此也称为通用算法。

让我们看看集合框架中可用的不同方法的实现。

1.使用sort()排序sort()集合框架提供的方法用于对元素进行排序。例如,

import java.util.ArrayList;

import java.util.Collections;

class Main {

public static void main(String[] args) {

//创建数组列表

ArrayList numbers = new ArrayList<>();

//添加元素

numbers.add(4);

numbers.add(2);

numbers.add(3);

System.out.println("未排序的ArrayList: " + numbers);

// 使用sort()方法

Collections.sort(numbers);

System.out.println("已排序的ArrayList: " + numbers);

}

}输出结果

未排序的ArrayList: [4, 2, 3]

已排序的ArrayList: [2, 3, 4]在此,排序以自然顺序(升序)进行。 但是,我们可以使用Comparator接口自定义sort()方法的排序顺序。

要了解更多信息,请访问Java Sorting。

2.使用shuffle进行洗牌Java Collections框架的shuffle()方法用于打乱数据结构中出现的任何顺序。它的作用与排序正好相反。例如

import java.util.ArrayList;

import java.util.Collections;

class Main {

public static void main(String[] args) {

//创建数组列表

ArrayList numbers = new ArrayList<>();

//添加元素

numbers.add(1);

numbers.add(2);

numbers.add(3);

System.out.println("Sorted ArrayList: " + numbers);

//使用shuffle()方法

Collections.shuffle(numbers);

System.out.println("使用shuffle的ArrayList: " + numbers);

}

}输出结果

Sorted ArrayList: [1, 2, 3]

使用shuffle的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) {

//创建一个ArrayList

ArrayList numbers = new ArrayList<>();

numbers.add(1);

numbers.add(2);

System.out.println("ArrayList1: " + numbers);

// 使用 reverse()

Collections.reverse(numbers);

System.out.println("反转 ArrayList1: " + numbers);

// 使用 swap()

Collections.swap(numbers, 0, 1);

System.out.println("ArrayList1 使用 swap(): " + numbers);

ArrayList newNumbers = new ArrayList<>();

// 使用 addAll

newNumbers.addAll(numbers);

System.out.println("ArrayList2 使用 addAll(): " + newNumbers);

// 使用 fill()

Collections.fill(numbers, 0);

System.out.println("ArrayList1 使用 fill(): " + numbers);

// 使用 copy()

Collections.copy(newNumbers, numbers);

System.out.println("ArrayList2 使用 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) {

//创建一个ArrayList

ArrayList numbers = new ArrayList<>();

numbers.add(1);

numbers.add(2);

numbers.add(3);

// 使用 binarySearch()

int pos = Collections.binarySearch(numbers, 3);

System.out.println("3的位置是 " + pos);

}

}输出结果

3的位置是 2注意:在执行binarySearch()方法之前,应对集合进行排序。

要了解更多信息,请访问Java Binary Search。

5.组合frequency() - 返回元素在集合中存在的次数计数

disjoint() - 检查两个集合是否包含一些公共元素

例如,

import java.util.Collections;

import java.util.ArrayList;

class Main {

public static void main(String[] args) {

//创建一个ArrayList

ArrayList numbers = new ArrayList<>();

numbers.add(1);

numbers.add(2);

numbers.add(3);

numbers.add(2);

System.out.println("ArrayList1: " + numbers);

int count = Collections.frequency(numbers, 2);

System.out.println("Count of 2: " + count);

ArrayList newNumbers = new ArrayList<>();

newNumbers.add(5);

newNumbers.add(6);

System.out.println("ArrayList2: " + newNumbers);

boolean value = Collections.disjoint(numbers, newNumbers);

System.out.println("两个列表是不相交的? " + value);

}

}输出结果

ArrayList1: [1, 2, 3, 2]

Count of 2: 2

ArrayList2: [5, 6]

两个列表是不相交? true6.寻找最大和最小元素Java集合框架的min()和max()方法分别用于查找最小和最大元素。例如,

import java.util.Collections;

import java.util.ArrayList;

class Main {

public static void main(String[] args) {

//创建一个ArrayList

ArrayList numbers = new ArrayList<>();

numbers.add(1);

numbers.add(2);

numbers.add(3);

// 使用 min()

int min = Collections.min(numbers);

System.out.println("最小元素: " + min);

// 使用 max()

int max = Collections.max(numbers);

System.out.println("最大元素: " + max);

}

}输出结果

最小元素: 1

最大元素: 3Java Iterator 接口Java HashSet 类

相关文章

友情链接