Java中linkedlist和 c++中list的api对应

53 阅读2分钟

Java中的LinkedList

  1. 获取元素数量

    • size():返回链表中的元素数量。
  2. 检查是否为空

    • isEmpty():检查链表是否为空。
  3. 访问元素

    • get(int index):获取指定索引处的元素。
  4. 插入元素

    • add(E element):在链表末尾添加元素。
    • add(int index, E element):在指定索引处插入元素。
  5. 删除元素

    • remove(int index):删除指定索引处的元素。
  6. 清空容器

    • clear():清空链表中的所有元素。

C++中的std::list

  1. 获取元素数量

    • size():返回链表中的元素数量。
  2. 检查是否为空

    • empty():检查链表是否为空。
  3. 访问元素

    • 由于std::list是双向链表,因此不能通过索引直接访问元素。可以通过迭代器进行访问,例如使用begin()end()获取迭代器范围。
  4. 插入元素

    • insert(iterator position, const T& value):在指定位置插入元素。
  5. 删除元素

    • erase(iterator position):删除指定位置的元素。
  6. 清空容器

    • clear():清空链表中的所有元素。

在Java中,LinkedList的API更加直观和简单,而C++中的std::list的API则更加灵活,需要使用迭代器进行访问和操作。

Java中的LinkedList

import java.util.LinkedList;

public class LinkedListExample {
    public static void main(String[] args) {
        // 创建一个LinkedList
        LinkedList<Integer> linkedList = new LinkedList<>();

        // 添加元素
        linkedList.add(10);
        linkedList.add(20);
        linkedList.add(30);

        // 获取元素数量
        System.out.println("Size of LinkedList: " + linkedList.size());

        // 检查是否为空
        System.out.println("Is LinkedList empty? " + linkedList.isEmpty());

        // 访问元素
        System.out.println("Element at index 1: " + linkedList.get(1));

        // 插入元素
        linkedList.add(1, 15);
        System.out.println("LinkedList after inserting 15 at index 1: " + linkedList);

        // 删除元素
        linkedList.remove(2);
        System.out.println("LinkedList after removing element at index 2: " + linkedList);

        // 清空容器
        linkedList.clear();
        System.out.println("LinkedList after clearing: " + linkedList);

        // 检查是否为空
        System.out.println("Is LinkedList empty? " + linkedList.isEmpty());
    }
}

C++中的std::list

#include <iostream>
#include <list>

using namespace std;

int main() {
    // 创建一个std::list
    list<int> myList;

    // 添加元素
    myList.push_back(10);
    myList.push_back(20);
    myList.push_back(30);

    // 获取元素数量
    cout << "Size of list: " << myList.size() << endl;

    // 检查是否为空
    cout << "Is list empty? " << (myList.empty() ? "true" : "false") << endl;

    // 访问元素 - 使用迭代器
    list<int>::iterator it = myList.begin();
    advance(it, 1); // 移动迭代器到第二个元素
    cout << "Element at index 1: " << *it << endl;

    // 插入元素
    it = myList.begin();
    advance(it, 1); // 移动迭代器到第二个位置
    myList.insert(it, 15);
    cout << "List after inserting 15 at index 1: ";
    for (int num : myList) {
        cout << num << " ";
    }
    cout << endl;

    // 删除元素
    it = myList.begin();
    advance(it, 2); // 移动迭代器到第三个位置
    myList.erase(it);
    cout << "List after removing element at index 2: ";
    for (int num : myList) {
        cout << num << " ";
    }
    cout << endl;

    // 清空容器
    myList.clear();
    cout << "List after clearing: ";
    for (int num : myList) {
        cout << num << " ";
    }
    cout << endl;

    // 检查是否为空
    cout << "Is list empty? " << (myList.empty() ? "true" : "false") << endl;

    return 0;
}