下面是Java集合的概念和分类的完整攻略。
什么是Java集合?
Java集合是一组类和接口,它们被用来以容器形式存储和操作对象。Java集合框架提供了实现常用数据结构,如队列(queue)、堆栈(stack)、数组(array)、链表(linked list)、树(tree)、哈希表(hash table)等。Java集合具有统一的接口,允许将不同实现的集合类互相替换,从而使Java集合框架更加灵活和可扩展。
Java集合的分类
Java集合框架中的所有类都实现了java.util包中的Collection接口。Java集合根据元素的存储方式和允许的元素个数的不同,分为三种类型:List、Set和Map。下面分别介绍这三种集合类型。
List列表
List是有序的集合,它允许重复元素。List中的元素可以通过索引访问和操作。Java中提供了两种实现List接口的类:ArrayList和LinkedList。
ArrayList示例代码
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
// 创建一个ArrayList实例
ArrayList<String> list = new ArrayList<String>();
// 添加元素
list.add("apple");
list.add("banana");
list.add("orange");
// 获取元素
System.out.println("第二个元素是:" + list.get(1));
// 修改元素
list.set(1, "pear");
// 删除元素
list.remove(2);
// 遍历元素
for (String fruit : list) {
System.out.println(fruit);
}
}
}
LinkedList示例代码
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
// 创建一个LinkedList实例
LinkedList<String> list = new LinkedList<String>();
// 添加元素
list.add("apple");
list.add("banana");
list.add("orange");
// 获取元素
System.out.println("第二个元素是:" + list.get(1));
// 修改元素
list.set(1, "pear");
// 删除元素
list.remove(2);
// 遍历元素
for (String fruit : list) {
System.out.println(fruit);
}
}
}
Set集合
Set是无序的集合,不允许重复元素。Java中提供了三种实现Set接口的类:HashSet、LinkedHashSet和TreeSet。
HashSet示例代码
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// 创建一个HashSet实例
HashSet<String> set = new HashSet<String>();
// 添加元素
set.add("apple");
set.add("banana");
set.add("orange");
// 遍历元素
for (String fruit : set) {
System.out.println(fruit);
}
}
}
LinkedHashSet示例代码
import java.util.LinkedHashSet;
public class LinkedHashSetDemo {
public static void main(String[] args) {
// 创建一个LinkedHashSet实例
LinkedHashSet<String> set = new LinkedHashSet<String>();
// 添加元素
set.add("apple");
set.add("banana");
set.add("orange");
// 遍历元素
for (String fruit : set) {
System.out.println(fruit);
}
}
}
TreeSet示例代码
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
// 创建一个TreeSet实例
TreeSet<String> set = new TreeSet<String>();
// 添加元素
set.add("apple");
set.add("banana");
set.add("orange");
// 遍历元素
for (String fruit : set) {
System.out.println(fruit);
}
}
}
Map映射
Map是一种键值对的集合,它允许将键映射到值。Map不允许重复的键,但允许不同的键对应相同的值。Java中提供了三个实现Map接口的类:HashMap、LinkedHashMap和TreeMap。
HashMap示例代码
import java.util.HashMap;
public class HashMapDemo {
public static void main(String[] args) {
// 创建一个HashMap实例
HashMap<String, Integer> map = new HashMap<String, Integer>();
// 添加键值对
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// 获取值
System.out.println("apple对应的值是:" + map.get("apple"));
// 修改值
map.put("banana", 4);
// 删除键值对
map.remove("orange");
// 遍历键值对
for (String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
}
LinkedHashMap示例代码
import java.util.LinkedHashMap;
public class LinkedHashMapDemo {
public static void main(String[] args) {
// 创建一个LinkedHashMap实例
LinkedHashMap<String, Integer> map = new LinkedHashMap<String, Integer>();
// 添加键值对
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// 获取值
System.out.println("apple对应的值是:" + map.get("apple"));
// 修改值
map.put("banana", 4);
// 删除键值对
map.remove("orange");
// 遍历键值对
for (String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
}
TreeMap示例代码
import java.util.TreeMap;
public class TreeMapDemo {
public static void main(String[] args) {
// 创建一个TreeMap实例
TreeMap<String, Integer> map = new TreeMap<String, Integer>();
// 添加键值对
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// 获取值
System.out.println("apple对应的值是:" + map.get("apple"));
// 修改值
map.put("banana", 4);
// 删除键值对
map.remove("orange");
// 遍历键值对
for (String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
}
以上就是Java集合的概念和分类的完整攻略。