java集合类概述(学习笔记)

综述:

  1. java.util包中提供了一些集合类,这些集合类又被称为容器
  2. 和数组的区别:数组的长度是固定的,集合的长度是可变的;数组用来存放基本的数据类型,集合用来存放对象的引用。
  3. 常用的集合有List集合、Set集合、Map集合,其中List与Set继承了Collection接口,各接口还提供了不同的实现类。

Collection接口:

常用方法:

  1. Add(E e)——将指定对象添加到该集合中
  2. remove(Object o)——将指定的对象从集合中移除
  3. isEmpty()——返回boolean值,用于判断当前集合是否为空
  4. iterator()——用于遍历集合中的对象,返回在此Collection的元素上进行迭代的迭代器。
  5. size()——返回int值,获取集合中元素个数

例子

package com.flz.javamuster;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Muster//Muster:集合~
{

    public static void main(String[] args)
    {
        Collection<String> liStrings=new ArrayList<>();//实例化集合类对象
        liStrings.add("hello");//向集合添加数据
        liStrings.add("set");
        liStrings.add("world");
        Iterator<String>iterator=liStrings.iterator();//创建迭代器
        while (iterator.hasNext())//判断是否有下一个元素
        {
            String string = (String) iterator.next();//获取集合中的元素(iterater.next()返回的是Object)
            System.out.println(string);
        }
    }

}

运行结果

hello
set
world

List集合

常用方法

  1. 由于List接口继承了Collection接口,所以包含了Collection中的所有方法。
  2. get(int index)——获得指定索引位置的元素。
  3. set(int index,Object obj)——将集合中指定索引位置的对象修改为指定的对象。

List接口的实现类

  1. ArrayList类:实现了可变的数组,允许保存所有元素,包括null;可以根据索引位置快速随机访问,缺点是插入和删除对象的速度较慢。
  2. LinkedList类:采用链表结构保存对象,便于插入删除,但随机访问集合中的对象效率低。
  3. 注意:使用List集合通常声明为List类型,通过不同的实现类来实例化集合。

例子

package com.flz.javamuster;

import java.util.ArrayList;

public class Gather
{

    public static void main(String[] args)
    {
        java.util.List<String> list=new ArrayList<>();
        list.add("li1");
        list.add("li2");
        list.add("li3");
        int i=(int)(Math.random()*(list.size()-1));
        System.out.println("随机获取数组中的元素是:\n"+list.get(i));
        list.remove(1);
        System.out.println("移除后的list元素是:");
        for (int j = 0; j < list.size(); j++)
        {
            System.out.println(list.get(j));
        }
    }

}

运行结果:

随机获取数组中的元素是:
li1
移除后的list元素是:
li1
li3

Set集合

要点:
  1. set集合中的元素不按特定方式排序,只是简单地吧对象加入集合中
  2. 不能包含重复对象
  3. 继承于Collection接口,包含Collection接口中的所有方法
  4. 由于不能有重复对象,所以必须小心操作可变对象
常用的实现类
  1. HashSet类:由哈希表(实际上是一个HashMap实例)支持,不保证Set的迭代顺序,特别是不保证该顺序永久不变。允许使用NUll元素。
  2. TreeSet类:该类不仅实现了Set接口,还实现了 java.util.SortedSet接口。因此可以通过比较器(一个comparator()方法)对TreeSet类实现的Set集合中的对象进行排序。
TreeSet类新增方法:
  • first()——返回此Set中的第一个(最低)元素
  • last()——返回此Set中的最后一个(最高)元素
  • comparator()——进行排序的比较器,如果set使用自然顺序,则返回null
  • headSet(E toElement)——返回一个新的Set集合,包含toElment之前的所有对象
  • subSet(E fromElement,E toElement)——返回一个新的Set集合,包含fromElement(包括)和toElement(不包括)之间的所有对象
  • tailSet(E fromElement)——返回一个新的Set集合,包含对象fromElement(包括)之后的所有对象

Map集合

要点
  1. Map集合没有继承Collection接口 ,其提供的是key到value的映射。
  2. Map中不能包含相同的key,每个key只能映射一个value。
  3. key还决定了存储对象在映射中的存储位置(不是由key对象本身决定,而是通过“散列技术”进行处理???)
Map接口中的常用方法
  • put(K key,V value)——添加映射关系
  • containsKey(Object key)——如果此映射包含指定key的映射关系 ,返回true。
  • containsValue(Object Value)——如果此映射将一个或多个key映射到指定值,则返回true。
  • get(Object Key)——如果存在指定的Key对象,则返回该对象对应的值,否则返回null。
  • KeySet()——返回该集合中所有key对象形成的Set集合
  • value()——返回所有值对象形成的Collection集合
Map接口的实现类
  1. HashMap类
    建议使用HashMap类实现Map集合,因为其添加删除映射关系的效率更高。
  2. TreeMap类
    不仅实现了Map接口,还是实现了java.util.SortedMap接口,因此此映射关系具有一定顺序

建议:
通过HashMap创建Map集合,当需要顺序输出的时候再创建一个完成相同映射关系的TreeMap类实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值