集合类接口的常用方法

来源:互联网 发布:营养师配餐软件 编辑:程序博客网 时间:2024/06/06 15:50

Collection接口是层次结构中的根结口。构成Collection的单位,被称为元素。Collection接口通常不能直接使用,但该接口提供了添加和删除元素、管理数据的方法。由于List接口和Set接口都实现了Collection接口,因此这些方法对List集合与Set集合是通用的。


List接口常用的方法

List接口继承了Collection接口,因此包含Collection中的所有方法。又因List是列表类型,所以List接口还提供了一些适合于自身的常用方法。

这里写图片描述


List接口中适合于自身的方法都与索引有关。由于List集合以线性方式存储对象,因此可以通过对象的索引来操作对象,因此可以通过操作对象的索引来操作对象。
在List集合中的众多方法中,add(int index,Object obj)方法与set(int index,Object obj)方法不容易区分,但是我们可以通过例子,来看出这两个方法之间的区别。

Demo
创建集合对象,并向集合中添加元素,通过set()方法修改集合中的元素,再通过add()方法向集合中添加元素,通过迭代器遍历集合元素。

import java.util.Iterator;import java.util.LinkedList;import java.util.List;public class CollectionDemo {    public static void main(String[] args) {        //定义要插入集合的字符串对象        String a="A",b="B",c="C",d="D",e="E";        //创建List集合        List<String> list=new LinkedList<String>();        //向集合中添加元素        list.add("j");        list.add("k");        list.add("f");        //创建集合的迭代器        Iterator<String> iterator=list.iterator();        //输出信息        System.out.println("修改前集合的元素是 :");        //遍历集合中的元素        while(iterator.hasNext()){            String n=iterator.next();            System.out.println(n+"");        }        //将索引位置为1的对象修改为对象b        list.set(1, b);        //将对象c添加到索引位置为2的位置        list.set(2, c);        //创建将集合对象修改之后的迭代器对象        Iterator<String> iterator2=list.iterator();        System.out.println("修改后的集合的元素是:");        //循环获取集合中元素        while(iterator2.hasNext()){            String n=iterator2.next();            System.out.println(n+"");        }       }}

结果为:
这里写图片描述

Demo

创建List集合对象,通过add()方法向集合中添加元素,并将对象apple、b在集合中第一次与最后一次出现的索引位置输出。

import java.util.ArrayList;import java.util.List;public class CollectionDemo {    public static void main(String[] args) {        String a="a",b="b",c="c",d="d",apple="apple";  //要添加到集合中的对象        List<String> list=new ArrayList<String>();      //创建List集合对象        list.add(a);    //对象a的索引位置为0        list.add(apple);        //对象apple的索引位置为1        list.add(b);    //对象b的索引位置为2        list.add(apple);    //对象apple的索引位置为3        list.add(c);    //对象c的索引位置为4        list.add(apple);    //对象apple的索引位置为5        list.add(d);    //对象d的索引位置为6        System.out.println(list);  //输出列表中的全部元素        System.out.println("apple第一次出现的索引位置是:"+list.indexOf(apple));        System.out.println("apple最后一次出现的索引位置是:"+list.lastIndexOf(apple));        System.out.println("b第一次出现的索引位置是:"+list.indexOf(b));        System.out.println("b最后一次出现的索引位置是:"+list.lastIndexOf(b));    }}

结果为:
这里写图片描述


Set接口常用方法

Set集合由Set接口和Set接口的实现类组成。Set接口继承了Collection,因此包含Collection接口的所有方法。如图所示:
这里写图片描述

由于Set集合中不允诈存在重复值,因此可以使用Set集合中的addAll集合,将Collection集合添加到Set集合中并除掉重复值。

Demo

创建一个List集合对象,并往List集合中添加元素。再创建一个Set集合,利用addAll方法把List集合对象存入到Set集合中并除掉重复值,最后打印Set集合中的元素。

import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;public class SetDemo {    public static void main(String[] args) {        //创建list集合对象        List<String> list=new ArrayList<String>();        list.add("apple");        list.add("pear");        list.add("banana");        list.add("apple");        //创建set集合对象        Set<String> set=new HashSet<String>();        //将list集合添加到set集合中        set.addAll(list);        //使用Iterator遍历        System.out.println("集合中的元素是:");        Iterator<String> it=set.iterator();  //迭代器        while(it.hasNext()){            System.out.print(it.next()+"\t");        }    }}

结果为:
这里写图片描述

Map接口的常用方法

Map接口提供了将键值映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。Map接口中同样提供了集合的常用方法,如clear()、isEmpty()、size()等等,除此之外,还包括下表中提供的方法。
这里写图片描述

由于Map集合中的元素是通过key、value进行存储的,要获得集合中指定的key值或value值,需要先通过相应的方法获取key集合或value集合,再遍历key集合或value集合获取指定值。

Demo

向一个Map集合中插入元素并根据key的值打印集合中的元素。

public class MapDemo {    public static void main(String[] args) {        //创建Map集合        Map<String, String> map=new HashMap<String,String>();        //向集合中添加对象        map.put("1", "apple");        map.put("2", "pear");        map.put("3", "orange");        for(int i=1;i<=3;i++){            //输出对应位置的元素值            System.out.println("第"+i+"个元素是:"+map.get(""+i+""));        }    }}

结果:
这里写图片描述

范例1:

题目:用List集合传递学生信息

import java.awt.BorderLayout;import java.util.ArrayList;import java.util.List;import javax.swing.*;import javax.swing.border.EmptyBorder;import javax.swing.table.DefaultTableModel;@SuppressWarnings("serial")//继承窗体类public class ClassInfo extends JFrame{    /*     * 1>在项目中新建窗体类ClassInfo。在窗体中添加滚动面板,     * 这个面板将放置表格控件。     */    public ClassInfo(){    //设置表格名    setTitle("用List传递学生信息");    //设置用户在此窗体上发起 "close" 时默认执行的操作。    //退出应用程序后的默认窗口关闭操作    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    setBounds(100,100,392,223);    //新建JPanel对象    JPanel contentPane = new JPanel();    //设置边框的大小    contentPane.setBorder(new EmptyBorder(5,5,5,5));    //设置边框的布局    contentPane.setLayout(new BorderLayout(0,0));    // 设置 contentPane 属性    setContentPane(contentPane);    JScrollPane scrollPane=new JScrollPane();    //当布局管理器为BorderLayout时,指定添加到容器中控件的位置为居中    contentPane.add(scrollPane,BorderLayout.CENTER);    //创建一个视口(如果有必要)并设置其视图。    scrollPane.setViewportView(getTable());    }    /*     * 2>编写getTable()方法,在该方法中创建表格对象,设置表格的数据模型,     * 然后调用getStudents()方法获取保存学生信息的集合对象,     * 在遍历该集合对象的同时把每个元素添加到表格模型的行,并显示到表格控件中。     */    private JTable getTable(){        JTable table = null;        if(table==null){            table=new JTable();            //设置表的行高            table.setRowHeight(23);            //创建数组封装表格的列名            String[] columns={"姓名","性别","出生日期"};            //按照数组中指定的数据和列名创建一个表格模型            DefaultTableModel model=new DefaultTableModel(columns,0);            //            table.setModel(model);            List<String> students=getStudents();            for(String info:students){                //由,为分隔符把数据分开                String[] args=info.split(",");                //由数组封装的数据添加到表格的尾部                model.addRow(args);            }        }        return  table;    }    /*     * 3>编写getStudent()方法,该方法将向调用者传递List集合对象,方法     * 中为集合对象添加了多个元素,每个元素值都是一个学生信息,其中     * 包括姓名、性别、出生日期。     */    private List<String> getStudents(){        //创建List集合        List<String> list=new ArrayList<String>();        //添加数据         list.add("李哥,男,1981-1-1");        list.add("小陈,女,1981-1-1");        list.add("小刘,男,1981-1-1");        list.add("小张,男,1981-1-1");        list.add("小萫,女,1981-1-1");        list.add("小吕,男,1981-1-1");        return list;    }    /*     * main方法,程序的入口     */    public static void main(String[] args) {        //创建对象,调用构造器        ClassInfo ci=new ClassInfo();        //设置窗体为可见        ci.setVisible(true);    }}

程序执行结果:

这里写图片描述

范例2:

题目:Map集合二级联动

原创粉丝点击