Java集合框架:List和Set操作不当的示例

原创 短命女 2024-09-22 20:03 153阅读 0赞

在Java集合框架中,ListSet都是用来存储对象的容器。然而,如果操作不当,可能会导致数据丢失或者逻辑错误。以下是一些示例:

  1. 添加重复元素到List

    1. List<String> list = new ArrayList<>();
    2. list.add("Apple");
    3. list.add("Apple"); // 添加重复元素

    结果:list中会出现两个”Apple”。

  2. 在Set中存储可变对象(如列表)
    ```java
    List list1 = new ArrayList<>();
    list1.add(“A”);

List list2 = new ArrayList<>();
list2.add(“B”);

Set> set = new HashSet<>();
set.add(list1);
set.add(list2); // 添加可变对象到Set

// 想要更新某条数据,尝试直接修改list1
list1.set(0, “New A”)); // 这会导致问题

// 试图获取并添加新的元素,这样才安全
List newElement = new ArrayList<>();
newElement.add(“C”);

set.add(newElement); // 正确的操作方式

  1. 结果:`set`中不会存储"Apple""B",因为这些不是不可变对象。而新元素"C"会被添加到集合中。
  2. 3. **从Set中移除特定元素**:
  3. ```java
  4. List<String> list = new ArrayList<>();
  5. list.add("A");
  6. list.add("B");
  7. Set<List<String>> set = new HashSet<>(list);
  8. // 试图移除一个不在集合中的元素
  9. set.remove(new ArrayList<>()); // 这会导致空指针异常
  10. // 正确的移除操作
  11. List<String> removeElement = "C"; // 要移除的元素
  12. if (set.contains(removeElement))) {
  13. set.remove(removeElement);
  14. }

结果:在上述示例中,最后成功的移除了集合中对应的元素。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,153人围观)

还没有评论,来说两句吧...

相关阅读