首页 > 代码库 > 用List传递学生信息

用List传递学生信息

    集合在程序开发中经常用到,例如,在业务方法中将学生信息、商品信息等存储到集合中,然后作为方法的返回值返回给调用者,以此传递大量的有序数据。

本实例将使用List集合在方法之间传递学生的信息。实例效果如下:

 

 设计过程

1)在项目中新建窗体类ClassInfo。 在窗体中添加JScrollPane,再在JScrollPane中放置表格控件JTable。

2)编写getTable()方法。在该方法中创建表格对象并设置表格的数据模型,然后调用getStudents()方法获取学生信息的集合对象,

在遍历该集合对象的同时,把每个元素添加到表格模型的行,并显示到表格控件中。

关键代码如下:

  private JTable getTable() {        if (table == null) {            table = new JTable();// 创建表格控件            table.setRowHeight(23);// 设置行高度            String[] columns = { "姓名", "性别", "出生日期" };// 创建列名数组            // 创建表格模型            DefaultTableModel model = new DefaultTableModel(columns, 0);            table.setModel(model);// 设置表格模型            List<String> students = getStudents();// 调用方法传递list集合对象            for (String info : students) {// 遍历学生集合对象                String[] args = info.split(",");// 把学生信息拆分为数组                model.addRow(args);// 把学生信息添加到表格的行            }        }        return table;    }

3)编写getStudents()方法,该方法将向调用者传递List集合对象,并为集合对象添加多个元素,每个元素值都是一个学生信息,其中包括姓名、性别、出生日期。

关键代码如下:

private List<String> getStudents(){		//创建List集合对象		List<String> list = new ArrayList<String>();		list.add("钱东强,男,1990-1-4");//字符串之间用英文的逗号隔开		list.add("孙西,女,1990-1-4");		list.add("周五燕,男,1990-1-4");		list.add("王东,女,1990-1-4");		list.add("冯晓,男,1990-1-4");		list.add("陈玉山,女,1990-1-4");		list.add("蒋钦大,男,1990-1-4");		return list;			}	


 

 注意:<span style="color:#ff6666;">List<T></span>泛型集合,表示可通过索引访问对象的强类型列表,它提供用于对列表进行<span style="color:#ff6666;">搜索</span>、<span style="color:#ff6666;">排序</span>和<span style="color:#ff6666;">操作</span>的方法。

         相对于ArrayList来说,List<T>泛型集合在大多数情况下执行得更好并且是类型安全的。

完整代码如下:

package cn.str.opera;import java.awt.BorderLayout;public class ClassInfo extends JFrame {	private JPanel contentPane;	private JTable table;	/**	 * Launch the application.	 */	public static void main(String[] args) {				   try {	            UIManager	                    .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");	        } catch (Throwable e) {	            e.printStackTrace();	        }		EventQueue.invokeLater(new Runnable() {			public void run() {				try {					ClassInfo frame = new ClassInfo();					frame.setVisible(true);				} catch (Exception e) {					e.printStackTrace();				}			}		});	}	/**	 * Create the frame.	 */	public ClassInfo() {		getContentPane().setLayout(new BorderLayout(0, 0));		setTitle("\u7528List\u96C6\u5408\u4F20\u9012\u5B66\u751F\u4FE1\u606F");		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		setBounds(100, 100, 450, 300);		contentPane = new JPanel();		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));		contentPane.setLayout(new BorderLayout(0, 0));		setContentPane(contentPane);						JScrollPane scrollPane = new JScrollPane();		contentPane.add(scrollPane,BorderLayout.CENTER);		scrollPane.setViewportView(getTable());			}	private JTable getTable() {		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;			}		private List<String> getStudents(){		//创建List集合对象		List<String> list = new ArrayList<String>();		list.add("钱东强,男,1990-1-4");//字符串之间用英文的逗号隔开		list.add("孙西,女,1990-1-4");		list.add("周五燕,男,1990-1-4");		list.add("王东,女,1990-1-4");		list.add("冯晓,男,1990-1-4");		list.add("陈玉山,女,1990-1-4");		list.add("蒋钦大,男,1990-1-4");		return list;			}	}