Java集合框架:你的数据收纳神器
各位码友们,今天咱们来聊聊Java中的集合框架(Collections Framework)——这玩意儿简直就是程序员的"收纳整理大师"!
什么是集合框架?
想象一下,你要整理一堆乱七八糟的东西:有的需要按顺序摆放,有的需要快速查找,有的还不能重复。Java集合框架就是帮你做这件事的超级工具箱!
三大门派:List、Set、Map
1. List(列表)- 像排队买奶茶
List就像排队买奶茶,讲究先来后到:
List<String> milkTeaQueue = new ArrayList<>();
milkTeaQueue.add("珍珠奶茶");
milkTeaQueue.add("芋圆奶茶");
milkTeaQueue.add("布丁奶茶");
// 永远按顺序来!
System.out.println(milkTeaQueue.get(0)); // 输出:珍珠奶茶
特点:
- 有序排队,先来后到
- 可以重复(就像你可以点两杯一样的奶茶)
- 主要实现:ArrayList(随机访问快)、LinkedList(插入删除快)
2. Set(集合)- 像微信好友列表
Set就像你的微信好友列表,不能有重复好友:
Set<String> wechatFriends = new HashSet<>();
wechatFriends.add("张三");
wechatFriends.add("李四");
wechatFriends.add("张三"); // 这个不会重复添加!
System.out.println(wechatFriends.size()); // 输出:2
特点:
- 不允许重复元素
- 不保证顺序(HashSet)或自动排序(TreeSet)
- 主要实现:HashSet、TreeSet
3. Map(映射)- 像通讯录
Map就像手机通讯录,通过名字找电话:
Map<String, String> phoneBook = new HashMap<>();
phoneBook.put("张三", "13800138000");
phoneBook.put("李四", "13900139000");
// 通过名字找电话
System.out.println(phoneBook.get("张三")); // 输出:13800138000
特点:
- 键值对存储(key-value)
- 键不能重复,值可以重复
- 主要实现:HashMap、TreeMap
实用小技巧
填充集合的妙招
有时候我们需要快速创建测试数据:
List<String> names = Arrays.asList("张三", "李四", "王五");
Set<Integer> numbers = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
函数式操作(Java 8+)
现代Java提供了更优雅的操作方式:
List<String> names = Arrays.asList("张三", "李四", "王五");
names.stream()
.filter(name -> name.startsWith("张"))
.forEach(System.out::println);
选择困难症?我来帮你!
- 需要有序且可重复?选List!
- 需要去重不关心顺序?选Set!
- 需要通过键快速查找?选Map!
- 需要排序?用TreeSet或TreeMap!
历史小彩蛋
Java 1.0/1.1时代还有Vector、Hashtable这些老古董,虽然现在还能用,但就像翻盖手机一样,建议用新的ArrayList和HashMap替代它们!
总结
Java集合框架就像你的智能收纳系统:
- List帮你有序排列
- Set帮你去重整理
- Map帮你快速查找
记住:选择合适的集合类型,能让你的代码既高效又优雅。下次整理数据时,想想你要的是什么效果,然后pick合适的集合工具吧!