网站首页 > java教程 正文
Java提供了多种集合框架和排序算法,以下是一些常见的集合类型和排序方法以及相应的Java代码实现。
一、集合类型
- ArrayList
ArrayList是Java中最常用的动态数组实现之一,它可以根据需要自动扩展和收缩。ArrayList提供了许多有用的方法,例如add()、get()、remove()等。
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
- LinkedList
LinkedList是Java中实现双向链表的类,它提供了许多与ArrayList类似的方法,但具有更好的性能,特别是在插入和删除元素时。
List<Integer> list = new LinkedList<>();
list.add(1);
list.add(2);
list.add(3);
- HashSet
HashSet是Java中实现哈希表的类,它不允许出现重复元素。HashSet提供了add()、remove()和contains()等方法。
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
二、排序算法
- 冒泡排序
冒泡排序是一种简单的排序算法,它通过不断比较相邻元素并交换它们的位置来将最大的元素“冒泡”到数组的末尾。以下是使用冒泡排序对整数数组进行排序的Java代码实现:
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
- 快速排序
快速排序是一种高效的排序算法,它采用分治法来将数组划分为两个子数组,然后递归地对这两个子数组进行排序。以下是使用快速排序对整数数组进行排序的Java代码实现:
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivot = partition(arr, low, high);
quickSort(arr, low, pivot-1);
quickSort(arr, pivot+1, high);
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i+1];
arr[i+1] = arr[high];
arr[high] = temp;
return i+1;
}
猜你喜欢
- 2024-10-05 List的用法和实例详解——Java进阶知识讲义系列(四)
- 2024-10-05 从Collection到List:Java集合转换的艺术
- 2024-10-05 小心!"数组"转"集合"的这几个隐藏"bug"
- 2024-10-05 JAVA脱水学习-java数组解析及常用操作
- 2024-10-05 《极简Java新手编程之道》10.2 List集合
- 2024-10-05 字符串拆分数组(字符串拆成列表)
- 2024-10-05 Java中的ArrayList与LinkedList(java linklist和arraylist的区别)
- 2024-10-05 小白学JAVA之——List接口的实现类——ArrayList
- 2024-10-05 「漫步计算机系统」之数据结构与算法(5):Array、List和Map等
- 2024-10-05 每日分享- java 编程中 ArrayList 集合怎么扩容
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)