【java面试】说说List,Set,Map三者的区别


在Java中, ListSetMap是三种主要的集合接口,它们分别用于存储不同的数据结构和满足不同的需求。以下是关于它们之间的区别、原理解释和代码示例。

1. List

原理

List是一个有序集合,允许元素重复。它提供了对元素位置的精确控制,可以通过索引来访问、修改或删除元素。

代码示例

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

public class ListExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Apple"); // 允许重复
        System.out.println(list.get(1)); // 输出: Banana,通过索引访问元素
        System.out.println(list); // 输出: [Apple, Banana, Apple]
    }
}

2. Set

原理

Set是一个不允许元素重复的集合。它提供了对元素唯一性的保证,但不保证元素的顺序。常见的实现有HashSet(基于哈希表)和TreeSet(基于红黑树)。

代码示例

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

public class SetExample {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("Apple");
        set.add("Banana");
        set.add("Apple"); // 不会添加,因为Set不允许重复
        System.out.println(set); // 输出可能是: [Banana, Apple],但顺序不保证
    }
}

3. Map

下滑查看解决方法

原理

Map是一个存储键值对(key-value pair)的集合。每个键都是唯一的,并且映射到一个值。键和值都可以是任何类型的对象。常见的实现有HashMap(基于哈希表)和TreeMap(基于红黑树)。

代码示例

import java.util.HashMap;
import java.util.Map;

public class MapExample {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("Apple", 5);
        map.put("Banana", 10);
        map.put("Cherry", 2); // 键是唯一的
        System.out.println(map.get("Banana")); // 输出: 10,通过键访问值
        System.out.println(map); // 输出可能是: {Cherry=2, Apple=5, Banana=10},但顺序不保证
    }
}

总结

  • List:有序集合,允许元素重复,可以通过索引访问元素。
  • Set:无序集合,不允许元素重复,提供元素唯一性保证。
  • Map:存储键值对的集合,键是唯一的,值可以重复。可以通过键来访问值。
  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值