您的位置:

Java集合类介绍

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集合类的使用方式和常见的集合类。