Java集合
Posted 洛阳泰山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合相关的知识,希望对你有一定的参考价值。
目录
Java集合框架
集合(collection)有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体
集合被用于存储、获取、操纵和传输聚合的数据
集合框架(Collections Framework)是用来表现和操纵集合的一个统一的体系结构。所有的集合框架都包含以下内容:
- 接口:是代表集合的抽象数据类型。
- 实现:是集合接口的具体实现。本质上,它们是可重用的数据结构,是一些类。
- 算法:是在实现了集合接口的对象上执行有用的计算的方法,如查找和排序。
集合框架结构图
Collection接口
Collection集合元素的遍历方式
两种集合的遍历方式
- for-each结构遍历
2.迭代器Iterator遍历
Iterator接口
使用集合的iterator()方法创建的迭代器对象,都是接口的子类型对象
迭代遍历期间,不能使用集合,来增删数据
方法:
- hasNext()
- next()
- remove()
遍历方式
for循环
写法
List<String>list=new ArrayList<String>();
for (Iterator<String> iterator = list.iterator(); iterator.hasNext();)
String s = iterator.next();
System.out.print(s+" ");
while循环
写法
ArrayList<Integer>list=new ArrayList<Integer>();
Iterator<Integer> it = list.iterator();
while(it.hasNext())
System.out.print(i+" ");
foreach循环
写法
List<String>list=new ArrayList<String>();
for (String s : list)
System.out.print(s+" ");
List接口以及实现类
List接口是一个有序的集合,可以包含重复元素
除了从Collection继承来的操作外,List接口还提供了以下按序列进行操作的方法:["aaa","bbb","ccc"]
Set接口以及实现类
- Set是一个不能包含重复元素的接口。
- Set接口是Collection的子接口
- 只包含从Collection继承过来的方法
- 增加了对add方法的限制,不允许有重复的元素。
Set接口通用的实现类有HashSet、TreeSet和LinkedHashSet
编写程序,获取命令行参数中的字符串列表,输出其中重复的单词、不重复的单词以及消除重复以后的单词列表。
代码示例
import java.util.HashSet;
import java.util.Set;
public class SetTest
public static void main(String[] args)
String[] words="a","b","c","d","e","f","g","d";
Set<String> set=new HashSet<>();
for (String word : words)
if(!set.add(word))
System.out.println("存在重复单词"+word);
System.out.println("共存在"+set.size()+"个不重复的单词,分别为"+set);
Map接口以及实现类
- Map是一种包含键值对的元素的集合。
- Map不能包含重复的键
- 每个键最多可映射到一个值。
Map接口定义了一系列的方法:
代码示例
import java.util.HashMap;
import java.util.Map;
public class MapTest
public static void main(String[] args)
String[] words="a","b","c","d","e","f","g","d","e","d";
Map<String,Integer> map=new HashMap<>();
for (String word : words)
Integer times=map.get(word);
map.put(word,times==null?1:times+1);
for (Map.Entry<String, Integer> entry : map.entrySet())
System.out.println(entry);
Collections工具类
1.Collections提供了集合操作的常用算法,这些算法都以静态方法的形式提供
2.这些静态方法的第一个参数都是需要对其操作的 集合
3.Collections提供的多数算法都是针对java.util.List类型的集合进行操作的,也有一部分可以操作任何类型的集合
4.Collections集合操作工具类位于java.util包下
5.Collections中常用的方法有:
- 排序: void sort(List l)
- 随机排序:void shuffle(List l)
- 反转集合中的顺序: void reverse(List l)
- 二分查找:int binarySearch(List l,Key)
- 查找极值: T max(List l),T min(List l)
Arrays工具类
Arrays提供了数组操作的各种方法
Arrays提供了将数组转换为List的静态方法
Arrays提供的常用方法有:
- 将数组转化为List:asList()
- 二分查找:binarySearch()
- 复制数组:copyOf()
- 数组排序:sort()
- 初始化数组:fill()
作业
作业一:
使用Scanner从控制台读取一个字符串,统计字符串中每个字符出现的次数,要求使用学习过的知识完成以上要求
实现思路根据Set、List、Map集合的特性完成。
下一章《Java 基础入门 | 第十四章 File以及I/O流》https://tarzan.blog.csdn.net/article/details/122785711Collions工 上一章《Java 基础入门 | 第十二章 异常处理机制》
https://tarzan.blog.csdn.net/article/details/122775983
以上是关于Java集合的主要内容,如果未能解决你的问题,请参考以下文章