Java集合详解

使用集合的技巧: 
看到Array就是数组结构,有角标,查询速度很快。 
看到link就是链表结构:增删速度快,而且有特有方法。addFirst; addLast;?removeFirst(); removeLast(); getFirst();getLast(); 
看到hash就是哈希表,就要想要哈希值,就要想到唯一性,就要想到存入到该结构的中的元素必须覆盖hashCode,equals方法。 
看到tree就是二叉树,就要想到排序,就想要用到比较。 


比较的两种方式: 
一个是Comparable:覆盖compareTo方法; 一个是Comparator:覆盖compare方法。
 LinkedHashSet,LinkedHashMap:这两个集合可以保证哈希表有存入顺序和取出顺序一致,保证哈希表有序。
 集合什么时候用? 
当存储的是一个元素时,就用Collection。
当存储对象之间存在着映射关系时,就使用Map集合。 
保证唯一,就用Set。不保证唯一,就用List。





集合体系:集合中存储的都是对象的引用(地址)
List和Set

List :ArrayList  LinkedList Vector  
Set :HashSet TreeSet

Collections共性集合

ArrayList  
  创建集合容器
  ArrayList  al=new ArrayList ()
  1.添加元素:
     a1.add("");
     a1.add("");
  2.获取长度,集合个数
     a1.size();
  3.删除元素
     a1.remove();
  4.清空集合
     a1.clear();
  5.判断
     a1.contains()是否包含
     a1.isEmpty()是否为空
  6.取交集
     a1.retainAll(a2);取两个集合中交集的元素。


取出元素:
迭代器:集合取出元素的方式。
    Iterator it=a1.iterator();
    while(it.hasNext())
     {
           it.next();

     }


### Java集合框架详解 #### 什么是Java集合框架? Java集合框架是一组用于表示和操作集合的标准接口和类[^1]。它提供了一种统一的方式来处理常见的数据结构,如列表(List)、集(Set)和映射(Map)。这些数据结构可以帮助开发者更有效地管理对象。 #### List 接口及其实现 `List` 是一个有序的集合,允许重复元素。它的主要特点是可以通过索引来访问元素。以下是 `List` 的常见实现类: - **ArrayList**: 基于动态数组实现,适合频繁随机访问的场景[^2]。 - **LinkedList**: 双向链表实现,适合频繁插入和删除的操作。 ##### 示例代码: ```java 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"); System.out.println(list.get(0)); // 输出 Apple } } ``` #### Set 接口及其实现 `Set` 不允许有重复的元素,并且不保证顺序。其常用实现包括: - **HashSet**: 提供快速查找功能,底层基于哈希表实现。 - **TreeSet**: 维护自然顺序或者通过比较器指定的顺序,支持排序操作。 ##### 示例代码: ```java import java.util.Set; import java.util.HashSet; public class SetExample { public static void main(String[] args) { Set<String> set = new HashSet<>(); set.add("Apple"); set.add("Banana"); System.out.println(set.contains("Apple")); // 输出 true } } ``` #### Map 接口及其实现 `Map` 存储的是键值对(key-value pairs),其中键唯一而值可以重复。常用的 `Map` 实现有: - **HashMap**: 底层采用哈希表实现,不允许 null 键和值。 - **TreeMap**: 使用红黑树实现,能够按照键的自然顺序或自定义顺序排列。 ##### 示例代码: ```java import java.util.Map; import java.util.HashMap; public class MapExample { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Apple", 1); map.put("Banana", 2); System.out.println(map.get("Apple")); // 输出 1 } } ``` --- #### 总结 Java集合框架的核心在于理解不同集合的特点以及适用场景。对于需要保持元素顺序的情况可以选择 `List`;如果希望去除重复项,则应考虑使用 `Set`;而对于键值关联的需求则更适合选用 `Map`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值