请介绍一下 Java 集合类有哪些,你一般用哪些,在什么样的场景会选择用这些集合类?
Java 集合类主要分为两大体系,Collection 和 Map。
Collection 又包括 List、Set 和 Queue。List 是有序的集合,元素可以重复。其中 ArrayList 是基于数组实现的动态数组,它的优点是随机访问效率高,在需要频繁通过索引访问元素、或者需要动态调整大小(添加、删除元素)并且对性能要求较高的场景下很适用。例如存储一个班级学生的成绩列表,方便根据索引获取某个学生的成绩,也方便增加或者删除某个学生的成绩记录。LinkedList 是基于链表实现的,它在插入和删除操作比较频繁(特别是在集合头部或者尾部进行操作)的场景更有优势,比如实现一个栈或者队列结构。
Set 是不允许元素重复的集合。HashSet 是基于哈希表实现的,它的性能比较好,添加、删除、查找操作的时间复杂度基本都是常数时间。当需要存储一组不重复的元素,并且对元素的顺序没有要求,比如存储所有用户的唯一标识就很合适。TreeSet 是基于红黑树实现的有序集合,它会自动对元素进行排序,当需要存储一组不重复且有顺序要求的元素时可以使用,例如存储按照字典序排列的单词集合。
Queue 主要用于在处理之前保存元素的集合,常见的有 LinkedList(可以作为队列使用),PriorityQueue 是一个优先队列,它会根据元素的优先级来排序,在任务调度等场景很有用,比如操作系统中的进程调度,高优先级的进程先执行。
Map 是用于存储键 - 值对的集合。HashMap 是最常用的
Java集合、数据结构及项目日志查看要点
              
                      
                      
                        
                            
                            
                          
                          
                            
                  
                订阅专栏 解锁全文
                
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
                    
              
            
                  
					897
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
					
					
					


            