Java 基础入门 | 第十三章 Java集合

Java 基础入门 | 第十三章 Java集合,第1张

Java 基础入门 | 第十三章 Java集合

目录

Java集合框架

Collection接口

Iterator接口

List接口以及实现类

Set接口以及实现类

Map接口以及实现类

Collections工具类

Arrays工具类

作业 


Java集合框架

集合(collection)有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体
集合被用于存储、获取、 *** 纵和传输聚合的数据
集合框架(Collections framework)是用来表现和 *** 纵集合的一个统一的体系结构。所有的集合框架都包含以下内容:

接口:是代表集合的抽象数据类型。实现:是集合接口的具体实现。本质上,它们是可重用的数据结构,是一些类。算法:是在实现了集合接口的对象上执行有用的计算的方法,如查找和排序。

 集合框架结构图

 


Collection接口

Collection集合元素的遍历方式
两种集合的遍历方式

     for-each结构遍历

     2.迭代器Iterator遍历


Iterator接口

使用集合的iterator()方法创建的迭代器对象,都是接口的子类型对象
迭代遍历期间,不能使用集合,来增删数据
方法:

hasNext()next()remove() 

遍历方式

for循环写法 

Listlist=new ArrayList();
for (Iterator iterator = list.iterator(); iterator.hasNext();) 
{
    String s = iterator.next();
    System.out.print(s+" ");        
}

while循环写法 

ArrayListlist=new ArrayList();
Iterator it = list.iterator();
while(it.hasNext())
{
    System.out.print(i+" ");
}

foreach循环写法 

Listlist=new ArrayList();
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 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 map=new HashMap<>();
        for (String word : words) {
            Integer times=map.get(word);
            map.put(word,times==null?1:times+1);
        }
        for (Map.Entry 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集合的特性完成。
 

 Collections工具类

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5721580.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存