您当前的位置: 首页 >  Java

暂无认证

  • 3浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java 集合详解

发布时间:2022-06-01 07:15:00 ,浏览量:3

目录

一、概述

二、集合是什么?

三、Collection/集合

 四、ArrayList/数组列表

五、Iterator/迭代器

六、Set/无序集合/集 

七、HashSet/散列集

八、LinkedHashSet

九、TreeSet/树集

十、List/列表 

十一、 Map                

一、概述

所有集合类都位于java.util包下。集合中只能保存对象(保存对象的引用变量)。当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进行处理。

Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类。

二、集合是什么?

  Java集合类存放于 java.util 包中,是一个用来存放对象的容器。

注意:

  1. 集合只能存放对象。比如你存一个 int 型数据 1放入集合中,其实它是自动转换成 Integer 类后存入的,Java中每一种基本类型都有对应的引用类型。
  2. 集合存放的是多个对象的引用,对象本身还是放在堆内存中。
  3. 集合可以存放不同类型,不限数量的数据类型。
三、Collection/集合

Collection与Collections

  • Collection是所有集合类的根接口;
  • Collections是提供集合操作的工具类;

集合类和数组不同,

  • 数组元素可以为基本数据类型值/对象引用;
  • 集合元素只能为对象引用;

Java的集合类由Collection接口和Map接口派生,

  • Set代表无序集合,无序不可重复;
  • List代表有序集合,有序可重复;
  • Map集合存储键值对
 ArrayList/数组列表

ArrayList底层有数组支持,通常作为默认首选;当程序频繁进行插入/删除操作时,选用LinkedLIst;如果元素数量固定,可选择真正数组/List/备选;

//我们这里将 ArrayList集合作为 Collection 的实现类
 2         Collection collection = new ArrayList();
 3         
 4         //添加元素
 5         collection.add("Tom");
 6         collection.add("Bob");
 7         
 8         //删除指定元素
 9         collection.remove("Tom");
10         
11         //删除所有元素
12         Collection c = new ArrayList();
13         c.add("Bob");
14         collection.removeAll(c);
15         
16         //检测是否存在某个元素
17         collection.contains("Tom");
18         
19         //判断是否为空
20         collection.isEmpty();
21         
22         //利用增强for循环遍历集合
23         for(Object obj : collection){
24             System.out.println(obj);
25         }
26         //利用迭代器 Iterator
27         Iterator iterator = collection.iterator();
28         while(iterator.hasNext()){
29             Object obj = iterator.next();
30             System.out.println(obj);
31         }
Iterator/迭代器

Collection 接口的 iterator() 方法返回一个 Iterator。 

public interface Iterable{  // Iterable泛型接口
   Iteratoriterator();      // 由继承接口的集合类负责实现,返回一个迭代器
}
  1. 使用方法 iterator() 要求容器返回一个Iterator .第一次调用Iterator 的next() 方法时,它返回集合序列的第一个元素。
  2. 使用next() 获得集合序列的中的下一个元素。
  3. 使用hasNext()检查序列中是否元素。
  4. 使用remove()将迭代器新返回的元素删除
Set/无序集合/集 

Set集合中对象不可重复,因此当试图添加两个相同元素时,add()方法返回false/元素不可加入;

Set集合中对象必须重写hashCode()方法和equals()方法;

 Set最大的特性就是不允许在其中存放的元素是重复的

Set set1 = new  HashSet();
        if(set1.add("a"))
        {
            System.out.println("OK");
        }
        if (set1.add("a")) {
            System.out.println("OK2");
        }
        else
        {
            System.out.println("BAD2");
        }
        set1.add("000");
        set1.add("111");
        set1.add("222");
        System.out.println("集合set1的内容:"+set1);
        System.out.println("集合set1的大小:"+set1.size());
        set1.remove("000");
        System.out.println("集合set1的内容:"+set1);
        System.out.println("集合set1中是否包含000 :"+set1.contains("000"));
        System.out.println("集合set1中是否包含111 :"+set1.contains("111"));
        Set set2=new HashSet();
        set2.add("111");
        set2.addAll(set1);//将set1 集合中的元素全部都加到set2中
        System.out.println("集合set2的内容:"+set2);
        Iterator iterator = set1.iterator();//得到一个迭代器
        while (iterator.hasNext()) {//遍历
            String element =(String) iterator.next();
            System.out.println("iterator = " + element);
        }
        //将集合set1转化为数组
        Object s[]= set1.toArray();
        for(int i=0;i            
关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.0843s