Java集合类是Java编程语言中极其重要的一部分。集合框架是Java平台提供的一套完整的、性能优良的集合类。Java集合类可用于存储不同类型的对象,它们能够动态扩展,并且提供了随机、顺序访问集合元素的方法。Java集合类共分为三个体系:List,Set,Map,本篇文章将会详细讲解Java集合类的使用方式以及常见的集合类。
一、List集合
List是一个有序集合,其中的元素可以重复。这种数据结构在Java中可以使用ArrayList、LinkedList等集合类实现。下面,将分别介绍ArrayList和LinkedList的使用。
1、ArrayList集合
ArrayList类是Java集合框架中最常用的一个类,它实现了一个动态数组,可以动态增长和缩小。ArrayList中的元素可以通过一个唯一的非负整数索引来访问,索引从0开始。下面是一个示例:
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList names = new ArrayList
();
names.add("Alice");
names.add("Bob");
names.add("Charles");
names.add("David");
for(String name : names) {
System.out.println(name);
}
}
}
在上述示例中,我们创建了一个ArrayList对象并向其中添加了四个字符串。然后,使用增强型for循环遍历了ArrayList中的所有元素并将它们输出。
2、LinkedList集合
LinkedList是一个双向链表,它也实现了List接口,可以作为List的替代品。它拥有ArrayList所不具备的一些特性,比如可以实现高效的元素添加、删除等操作。下面是一个示例:
import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList names = new LinkedList
();
names.add("Alice");
names.add("Bob");
names.add("Charles");
names.add("David");
for(String name : names) {
System.out.println(name);
}
}
}
在上述示例中,我们创建了一个LinkedList对象并向其中添加了四个字符串。然后,使用增强型for循环遍历了LinkedList中的所有元素并将它们输出。
二、Set集合
Set是一个不允许元素重复的集合。它可以用于去重和查找。Java中的HashSet、LinkedHashSet和TreeSet是常见的Set集合类。
1、HashSet集合
HashSet是一种无序的集合,它是根据对象的哈希值来决定元素的存储位置。HashSet中的元素没有顺序,因此它无法保证元素的顺序。下面是一个示例:
import java.util.HashSet;
public class HashSetExample {
public static void main(String[] args) {
HashSet names = new HashSet
();
names.add("Alice");
names.add("Bob");
names.add("Charles");
names.add("David");
names.add("David");
for(String name : names) {
System.out.println(name);
}
}
}
在上述示例中,我们创建了一个HashSet对象并向其中添加了四个字符串。由于HashSet不允许元素重复,因此添加了两个相同的元素只会保留一个。
2、LinkedHashSet集合
LinkedHashSet是一种有序的集合,它具有HashSet的查找性能,同时保留了元素的插入顺序。下面是一个示例:
import java.util.LinkedHashSet;
public class LinkedHashSetExample {
public static void main(String[] args) {
LinkedHashSet names = new LinkedHashSet
();
names.add("Alice");
names.add("Bob");
names.add("Charles");
names.add("David");
names.add("David");
for(String name : names) {
System.out.println(name);
}
}
}
在上述示例中,我们创建了一个LinkedHashSet对象并向其中添加了四个字符串。由于LinkedHashSet是有序的集合,因此输出的结果与元素插入的顺序相同。
3、TreeSet集合
TreeSet是一种有序的集合,它可以按照元素的自然顺序或者特定的顺序来组织元素。TreeSet的实现是基于红黑树数据结构。下面是一个示例:
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
TreeSet names = new TreeSet
();
names.add("Alice");
names.add("Bob");
names.add("Charles");
names.add("David");
names.add("David");
for(String name : names) {
System.out.println(name);
}
}
}
在上述示例中,我们创建了一个TreeSet对象并向其中添加了四个字符串。由于TreeSet是有序的集合,因此输出的结果按照元素自然顺序排列。
三、Map集合
Map是一种键值对映射的集合。Map中的每个元素包含一个键对象和一个值对象,Map中的键对象是唯一的。常见的Map集合类有HashMap、LinkedHashMap和TreeMap。
1、HashMap集合
HashMap是最常用的Map集合类,它根据键的HashCode值存储数据,根据键可以直接访问对应的数据。下面是一个示例:
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap scores = new HashMap
();
scores.put("Alice", 89);
scores.put("Bob", 90);
scores.put("Charles", 75);
scores.put("David", 95);
for(String name : scores.keySet()) {
System.out.println(name + " : " + scores.get(name));
}
}
}
在上述示例中,我们创建了一个HashMap对象并向其中添加了四个键值对。然后,使用增强型for循环遍历了HashMap中的所有键并输出了对应的值。
2、LinkedHashMap集合
LinkedHashMap是一种有序的Map集合类,它保留了元素插入的顺序。下面是一个示例:
import java.util.LinkedHashMap;
public class LinkedHashMapExample {
public static void main(String[] args) {
LinkedHashMap scores = new LinkedHashMap
();
scores.put("Alice", 89);
scores.put("Bob", 90);
scores.put("Charles", 75);
scores.put("David", 95);
for(String name : scores.keySet()) {
System.out.println(name + " : " + scores.get(name));
}
}
}
在上述示例中,我们创建了一个LinkedHashMap对象并向其中添加了四个键值对。由于LinkedHashMap是有序的Map集合类,因此输出的结果与元素插入的顺序相同。
3、TreeMap集合
TreeMap是一种有序的Map集合类,它按照键的自然顺序或者特定的顺序组织元素。下面是一个示例:
import java.util.TreeMap;
public class TreeMapExample {
public static void main(String[] args) {
TreeMap scores = new TreeMap
();
scores.put("Alice", 89);
scores.put("Bob", 90);
scores.put("Charles", 75);
scores.put("David", 95);
for(String name : scores.keySet()) {
System.out.println(name + " : " + scores.get(name));
}
}
}
在上述示例中,我们创建了一个TreeMap对象并向其中添加了四个键值对。由于TreeMap是有序的Map集合类,因此输出的结果按照键的自然顺序排列。 综上所述,Java集合类是Java编程语言中非常重要的一部分,具有广泛的应用。本文对List、Set、Map三个集合体系中常见的集合类进行了介绍,并给出了相应的代码示例,希望能够帮助读者更好地理解Java集合类的使用方式和常见的集合类。