三种常用类集接口List,Set,Map用法详解

一.类集框架的主要接口

在整个java类集中最常使用的类集接口是:Collection,List,Set,Map,Iterator,ListIterator,Enumeration,SortedSet,SortedMap,Queue,Map.Entry,这些接口的具体用法这里不一一解释了,主要讨论一下三种。

类集框架主要接口作用

接口

描述

List

 是存放一组单值的最大接口,所谓的单值是指集合中的每个元素都是一个对,一般很少会直接使用此接口进行操作

Set

是Collection接口的子类,没有对Collection接口进行扩充,里面不允许存放重复内容

Map

Map是存放一堆值的最大接口,即接口中的每个元素都是一对,以key----》value的形式保存

这些接口中本身是存在继承关系的,其中部分接口的继承关系如图:

         

提示:在java中凡是以Sorted开头的接口都属于排序的接口,如SortedSet,SortedMap

 

二.List接口

List接口是Colletion的子接口,它本身也Collection的方法进行了扩充 ,里面可以保存各个重复的内容。

定义:

public interface List<E> extends Collection<E>

List接口的常用子类:ArrayList,Vector,LinkedList

ArrayList:

增加数据

可以直接使用Collection接口中定义的方法

(1)public boolean add(E o); 

(2)public boolean addAll(Collection<? extends E>c);  //添加一组元素

或者使用List扩充的方法

public void add(int index,E element); //在指定位置增加

删除数据:

可以直接使用Collection接口中定义的方法

(1)public boolean remove(Object o); //删除一个对象

(2)public boolean removeAll(Collection<?>c);  //删除一组元素

或者使用List扩充的方法

public E remove(int index); //在指定位置删除

输出数据:

(1)使用循环遍历,利用下标索引的方式进行元素的获取,在Collection接口中有获取长度的方法size()

(2)使用foreach进行遍历(这种适用于不通过下标索引进行数据操作)

实例操作一:

package com.jichu_08_list;
import java.util.*;
public class Text {
    public static void main(String[] args) {
        Collection<String> coll=new ArrayList<String>();     //声明并实例化对象
        List<String> list=new ArrayList<String>();    //声明并实例化对象    
        /*
         * 增加数据
         */        
        list.add("Hello");      //添加数据
        list.add(0,"World");   //在指定的位置进行添加
        coll.add("fbm");   //给collection接口实例化的对象进行添加数据
        coll.add("123");
        list.addAll(coll);    //添加一组数据
        list.addAll(0,coll);   //给指定位置添加一组数据
        System.out.println(list);
        System.out.println("---------------------------------------");
        /*
         * 删除数据
         */
//        对list进行操作
        list.remove(2);            //删除一个数据
        list.removeAll(coll);      //删除一组对象    
        System.out.println(list);
        
        
        /*
         * 数据输出
         */
        //第一种
        
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }        
        //第二种
        
        for (String string : list) {
            System.out.println(string);
        }
        
    }

}
 

实例操作二:

将集合变为对象数组

package com.jichu_08_list;
import java.util.*;
public class Text {
    public static void main(String[] args) {
        Collection<String> coll=new ArrayList<String>();     //声明并实例化对象
        List<String> list=new ArrayList<String>();    //声明并实例化对象    
        /*
         * 增加数据
         */        
        list.add("Hello");      //添加数据
        list.add(0,"World");   //在指定的位置进行添加
        coll.add("fbm");   //给collection接口实例化的对象进行添加数据
        coll.add("123");
        list.addAll(coll);    //添加一组数据
        list.addAll(0,coll);   //给指定位置添加一组数据
        System.out.println(list);
        System.out.println("---------------------------------------");
       /*
        * 将集合变为对象数组
        */
        Object ob[]=list.toArray();       //直接返回对象数组
        for (int i = 0; i < ob.length; i++) {
            String temp=(String) ob[i];
            System.out.print(temp+",");        
        }

运行结果:

 

实例操作三:

在list中还可以截取集合,查找元素位置

(1).截取元素的方法,subList(start,end),start开始位置,end结束位置

package Text;

import java.util.ArrayList;
import java.util.List;

import com.entity.User;
import com.service.impl.UserServiceImpl;

   public class text {
   public static void main(String[] args) {
          List<Integer> list=new ArrayList<Integer>();
          list.add(1);
          list.add(2);
          list.add(3);
          list.add(4);
         //截取元素的方法,subList(start,end)
         //start开始位置,end结束位置
         list=list.subList(1,4);
         System.out.println(list);
          }
  }

(2).获取元素的下标:

 方法:indexOf(元素);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值