0
点赞
收藏
分享

微信扫一扫

蓝牙APP开发实现汽车遥控钥匙解锁汽车智能时代

知年_7740 03-11 16:30 阅读 2

        在 Java 中,集合(Collections)是用于存储多个元素的容器。Java Collections Framework 提供了丰富的集合类,用于满足不同的数据存储需求。以下是一些常用的 Java 集合类及其常用方法,以及简单的例子来说明它们的用法。


        List 接口
        List 接口代表一个有序的元素集合,元素可以重复,并且允许元素为 `null`。
        1. **`ArrayList`**
   - `add(E e)`: 添加元素。
   - `remove(Object o)`: 移除元素。
   - `get(int index)`: 获取指定索引的元素。
   - `size()`: 获取集合大小。


   ArrayList<String> myList = new ArrayList<>();
   myList.add("Apple");
   myList.add("Banana");
   String secondElement = myList.get(1); // 获取索引为 1 的元素
   myList.remove("Banana"); // 移除元素 "Banana"


        2. **`LinkedList`**
   - `addFirst(E e)`: 在列表开头添加元素。
   - `addLast(E e)`: 在列表末尾添加元素。
   - `removeFirst()`: 移除列表开头的元素。
   - `removeLast()`: 移除列表末尾的元素。


   LinkedList<String> myList = new LinkedList<>();
   myList.addFirst("Apple");
   myList.addLast("Banana");
   String firstElement = myList.removeFirst(); // 移除并获取列表开头的元素
   


        Set 接口
        Set 接口代表一个无序的元素集合,元素不能重复。
1. **`HashSet`**
   - `add(E e)`: 添加元素。
   - `remove(Object o)`: 移除元素。
   - `contains(Object o)`: 检查集合中是否包含指定元素。
   - `size()`: 获取集合大小。


   HashSet<String> mySet = new HashSet<>();
   mySet.add("Apple");
   mySet.add("Banana");
   boolean contains = mySet.contains("Banana"); // 检查集合中是否包含 "Banana"


2. **`TreeSet`**
   - `add(E e)`: 添加元素。
   - `remove(Object o)`: 移除元素。
   - `contains(Object o)`: 检查集合中是否包含指定元素。
   - `size()`: 获取集合大小。
   - `first()`: 获取集合中的第一个元素。
   - `last()`: 获取集合中的最后一个元素。


   TreeSet<String> mySet = new TreeSet<>();
   mySet.add("Apple");
   mySet.add("Banana");
   String firstElement = mySet.first(); // 获取集合中的第一个元素
  


        Map 接口
        Map 接口代表键值对的映射表,键不能重复。
1. **`HashMap`**
   - `put(K key, V value)`: 添加键值对。
   - `get(Object key)`: 获取指定键的值。
   - `remove(Object key)`: 移除指定键的键值对。
   - `size()`: 获取映射的大小。
   - `isEmpty()`: 检查映射是否为空。
           

   HashMap<String, String> myMap = new HashMap<>();
   myMap.put("Key", "Value");
   String value = myMap.get("Key"); // 获取键 "Key" 对应的值
   myMap.remove("Key"); // 移除键 "Key"


        
2. **`TreeMap`**
   - `put(K key, V value)`: 添加键值对。
   - `get(Object key)`: 获取指定键的值。
   - `remove(Object key)`: 移除指定键的键值对。
   - `size()`: 获取映射的大小。
   - `isEmpty()`: 检查映射是否为空。
   - `firstKey()`: 获取映射中的第一个键。
   - `lastKey()`: 获取映射中的最后一个键。
  

   TreeMap<String, String> myMap = new TreeMap<>();
   myMap.put("Key", "Value");
   String value = myMap.get("Key"); // 获取键 "Key" 对应的值
   myMap.remove("Key"); // 移除键 "Key"



        Queue 接口
Queue 接口代表一个先进先出(FIFO)的元素队列。
1. **`PriorityQueue`**
   - `add(E e)`: 添加元素。
   - `remove()`: 移除队列头部元素。
   - `peek()`: 获取队列头部元素,但不移除。
   - `size()`: 获取队列大小。


   PriorityQueue<String> myQueue = new PriorityQueue<>();
   myQueue.add("Apple");
   myQueue.add("Banana");
   String head = myQueue.peek(); // 获取队列头部元素,但不移除
         


2. **`LinkedList`**
   - `addFirst(E e)`: 在队列开头添加元素。
   - `addLast(E e)`: 在队列末尾添加元素。
   - `removeFirst()`: 移除队列开头的元素。
   - `removeLast()`: 移除队列末尾的元素。
        

   LinkedList<String> myQueue = new LinkedList<>();
   myQueue.addFirst("Apple");
   myQueue.addLast("Banana");
   String firstElement = myQueue.removeFirst(); // 移除并获取队列开头的元素
     

   
        迭代器(Iterators)
        所有集合类都提供迭代器,用于遍历集合中的元素。
        

List<String> myList = Arrays.asList("Apple", "Banana", "Cherry");
Iterator<String> iterator = myList.iterator();
while (iterator.hasNext()) {
    String element = iterator.next();
    System.out.println(element);
}


        
        增强型集合类
Java 8 引入了增强型集合类,包括 `List`, `Set`, 和 `Map`。
1. **`List`**
   - `stream()`: 创建列表的流。
   - `forEach(Consumer<? super E> action)`: 遍历列表中的每个元素。
   - `removeIf(Predicate<? super E> filter)`: 移除满足给定谓词的元素。
          

   List<String> myList = Arrays.asList("Apple", "Banana", "Cherry");
   myList.removeIf(s -> s.startsWith("A")); // 移除所有以 "A" 开头的元素
      

    
2. **`Set`**
   - `stream()`: 创建集合的流。
   - `forEach(Consumer<? super E> action)`: 遍历集合中的每个元素。
   - `removeIf(Predicate<? super E> filter)`: 移除满足给定谓词的元素。


   Set<String> mySet = new HashSet<>();
   mySet.add("Apple");
   mySet.add("Banana");
   mySet.removeIf(s -> s.length() > 5); // 移除所有长度大于 5 的字符串
        


3. **`Map`**
   - `entrySet().stream()`: 创建映射项的流。
   - `forEach(BiConsumer<? super K, ? super V> action)`: 遍历映射中的每个映射项。
   - `removeIf(BiPredicate<? super K, ? super V> filter)`: 移除满足给定谓词的映射项。
           

   Map<String, String> myMap = new HashMap<>();
   myMap.put("Key1", "Value1");
   myMap.put("Key2", "Value2");
   myMap.entrySet().stream().filter(entry -> entry.getValue().startsWith("V")).forEach(entry ->         myMap.remove(entry.getKey())); // 移除所有值以 "V" 开头的映射项
   


        总结
        Java 集合类是 Java 编程中不可或缺的部分,它们提供了丰富的方法和功能,以满足不同类型的数据存储和操作需求。通过学习这些集合类及其常用方法,你可以更有效地处理数据,并提高代码的效率和可读性。
        

举报

相关推荐

0 条评论