Arraylist,TreeSet,TreeMap的增删改查及遍历

ArrayList :

是 Java 中一个动态数组,它基于可变长度数组实现,能够以恒定时间复杂度进行增删改操作,但遍历操作的时间复杂度为 O(n)。

有序,可重复,有索引

增删改查排序:

  • **add(E e):**向 ArrayList 的末尾添加一个元素。
  • **remove(int index):**从 ArrayList 中删除指定索引处的元素。
  • **set(int index, E element):**用给定元素替换 ArrayList 中指定索引处的元素。
  • **get(int index):**获取 ArrayList 中指定索引处的元素。
  • **list.sort(null):**使用自然排序对列表进行排序。
  • **Collections.sort(ArrayList<T> list):**使用归并排序算法对列表进行自然排序(按元素的自然顺序排序)。
  • toArray():返回一个包含 ArrayList 中所有元素的数组。
// 创建一个 ArrayList
ArrayList<String> arrayList = new ArrayList<>();

// 增
arrayList.add("Alice");
arrayList.add("Bob");
arrayList.add("Carol");

// 删
arrayList.remove(1);

// 改
arrayList.set(0, "Alice (updated)");

// 查
String firstElement = arrayList.get(0);

 TreeSet:

TreeSet 是 Java 中一个有序集合,它基于红黑树实现,能够以对数时间复杂度进行增删改查和遍历操作。

可排序,不重复,无索引。

增删改查:

  • **add(E e):**向 TreeSet 中添加一个元素。
  • **remove(Object o):**从 TreeSet 中删除一个元素。
  • **contains(Object o):**检查 TreeSet 中是否包含给定元素。
  • **first():**获取 TreeSet 中最小的元素。
  • **last():**获取 TreeSet 中最大的元素。

遍历:

  • **iterator():**返回 TreeSet 中元素的迭代器。
  • **descendingIterator():**返回 TreeSet 中元素的降序迭代器。
// 创建一个 TreeSet
TreeSet<String> treeSet = new TreeSet<>();

// 增
treeSet.add("Alice");
treeSet.add("Bob");
treeSet.add("Carol");

// 删
treeSet.remove("Bob");

// 查
boolean containsAlice = treeSet.contains("Alice");

// 遍历(使用迭代器遍历)
Iterator<String> iterator = treeSet.iterator();
while (iterator.hasNext()) {
    String name = iterator.next();
    System.out.println(name);
}

// 遍历(使用降序迭代器遍历)
Iterator<String> descendingIterator = treeSet.descendingIterator();
while (descendingIterator.hasNext()) {
    String name = descendingIterator.next();
    System.out.println(name);
}

 

TreeMap :

是 Java 中的一个有序映射,它基于红黑树实现,能够以对数时间复杂度进行增删改查和遍历操作。

可排序,不重复,无索引。

增删改查:

  • **put(K key, V value):**向 TreeMap 中插入一个键值对,如果键已存在,则替换旧值。
  • **remove(Object key):**从 TreeMap 中删除一个键值对。
  • **get(Object key):**获取与给定键关联的值。
  • **replace(K key, V value):**用给定值替换与给定键关联的值。
  • **containsKey(Object key):**检查 TreeMap 中是否包含给定键。

遍历:

  • **keySet():**返回 TreeMap 中所有键的集合。
  • **values():**返回 TreeMap 中所有值的集合。
  • **entrySet():**返回 TreeMap 中所有键值对的集合。

 

// 创建一个 TreeMap
TreeMap<String, Integer> treeMap = new TreeMap<>();

// 增
treeMap.put("Alice", 10);
treeMap.put("Bob", 20);
treeMap.put("Carol", 30);

// 删
treeMap.remove("Bob");

// 改
treeMap.replace("Alice", 15);

// 查
Integer aliceScore = treeMap.get("Alice");

// 遍历(使用 for-each 循环遍历键)
for (String key : treeMap.keySet()) {
    System.out.println("Key: " + key + ", Value: " + treeMap.get(key));
}

// 遍历(使用 for-each 循环遍历值)
for (Integer value : treeMap.values()) {
    System.out.println("Value: " + value);
}

// 遍历(使用 for-each 循环遍历键值对)
for (Map.Entry<String, Integer> entry : treeMap.entrySet()) {
    System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值