Java中的LinkedList:
-
获取元素数量:
size():返回链表中的元素数量。
-
检查是否为空:
isEmpty():检查链表是否为空。
-
访问元素:
get(int index):获取指定索引处的元素。
-
插入元素:
add(E element):在链表末尾添加元素。add(int index, E element):在指定索引处插入元素。
-
删除元素:
remove(int index):删除指定索引处的元素。
-
清空容器:
clear():清空链表中的所有元素。
C++中的std::list:
-
获取元素数量:
size():返回链表中的元素数量。
-
检查是否为空:
empty():检查链表是否为空。
-
访问元素:
- 由于
std::list是双向链表,因此不能通过索引直接访问元素。可以通过迭代器进行访问,例如使用begin()和end()获取迭代器范围。
- 由于
-
插入元素:
insert(iterator position, const T& value):在指定位置插入元素。
-
删除元素:
erase(iterator position):删除指定位置的元素。
-
清空容器:
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;
}