Java--集合

1. list集合的三大实现

Java提供了几种List接口的实现,包括:

  • ArrayList: 基于动态数组实现,提供快速随机访问。添加和删除元素可能较慢,因为可能需要数组复制。
  • LinkedList: 基于双向链表实现,提供快速的添加和删除操作,但随机访问速度较慢。
  • Vector: 和ArrayList类似,但它是同步的。
  • Stack: 继承自Vector,提供了栈的所有基本操作(LIFO:后进先出)。

示例代码:增删改查

import java.util.List;
import java.util.ArrayList;

public class ListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList对象
        List<String> fruits = new ArrayList<>();

        // 向List中添加元素
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");

        // 访问List中的元素
        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        // 获取并打印List中的特定元素,例如第一个元素
        System.out.println("The first fruit is: " + fruits.get(0));

        // 删除List中的元素
        fruits.remove("Banana");

        // 检查元素是否存在于List中
        boolean hasApple = fruits.contains("Apple");
        System.out.println("Does the list have Apple? " + hasApple);
    }
}

2. Set集合

以下是 Set 接口的一些关键特性:

  1. 不包含重复元素Set 集合不允许存储重复的元素。如果尝试添加已存在的元素,Set 集合将根据其实现细节决定是否接受新元素或保持不变。
  2. 无序Set 集合中的元素不维护特定的顺序。这意味着元素的插入顺序不一定与遍历时的顺序相同。
  3. 动态Set 的大小可以动态变化,可以在任何时候添加或删除元素。

Java提供了几种 Set 接口的实现,包括:

  • HashSet: 基于哈希表实现,提供快速查找、添加和删除操作。HashSet 不保证元素的顺序。
  • LinkedHashSet: 与 HashSet 类似,但它维护了元素的插入顺序。
  • TreeSet: 基于红黑树实现,可以按照自然顺序或自定义顺序对元素进行排序。

示例代码:

import java.util.Set;
import java.util.HashSet;

public class SetExample {
    public static void main(String[] args) {
        // 创建一个HashSet对象
        Set<String> set = new HashSet<>();

        // 向Set中添加元素
        set.add("Apple");
        set.add("Banana");
        set.add("Orange");

        // 尝试添加重复的元素
        set.add("Apple");

        // 访问Set中的元素
        for (String fruit : set) {
            System.out.println(fruit);
        }

        // 检查Set中是否包含特定元素
        boolean containsBanana = set.contains("Banana");
        System.out.println("Does the set contain Banana? " + containsBanana);

        // 从Set中删除元素
        set.remove("Banana");

        // 打印删除后的Set
        System.out.println("Set after removing Banana: " + set);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值