集合类接口的常用方法
来源:互联网 发布:营养师配餐软件 编辑:程序博客网 时间: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集合二级联动
- 集合类接口的常用方法
- Java_15 集合类接口的常用方法
- Java集合类:Map接口的常用方法
- 集合List:ArrayList,接口的常用方法
- Java集合类:Collection接口常用方法
- javaoop集合框架——List接口的常用方法
- 集合的常用方法
- Java常用集合类、接口
- StringBuffer类的常用方法集合
- JavaSE中的集合结构.和集合特性,及集合常用接口和实现类的特性.
- JAVA中常用的集合类,接口介绍
- Java集合中常用的接口和类
- Java常用集合类框架的基本接口
- Java常用的接口、类、方法
- Java常用的接口、类、方法
- 为什么需要集合?集合的常用方法
- Java常用集合类的常用方法 学习笔记
- 集合常用的方法--073
- mybatis模糊查询
- HDU4251 The Famous ICPC Team Again(划分树裸)
- 使用VIVADO HLS工具封装ORB算法
- AngularJS自定义指令之transclude解析与实例演示
- java向MySQL插入当前时间
- 集合类接口的常用方法
- Java Object转Long
- C#中修饰符、字段、属性
- ASP.Net的HtmlHelper和UrlHelper
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- (三)详解Servlet-读书笔记
- 树莓派发行版apt-get彻底卸载软件包
- hdu 1133
- 企业级keepalived高可用实战与Nginx负载均衡