ArrayList集合可以看做动态数组,可以随时向数组中添加和删除元素,如果要获取普通数组,还可以通过该类的toArray()方法获得。
import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.AbstractListModel; import javax.swing.DefaultListModel; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.ListModel; import javax.swing.border.EmptyBorder; import javax.swing.JScrollPane; import javax.swing.JList; import java.awt.FlowLayout; import javax.swing.JButton; import java.awt.Dimension; import javax.swing.JLabel; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.util.ArrayList; import javax.swing.JTextField; import javax.swing.UIManager; import javax.swing.JPopupMenu; import java.awt.Component; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JComboBox; public class DynamicArray extends JFrame { private JPanel contentPane; private final JPanel panel = new JPanel(); /** * 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 { DynamicArray frame = new DynamicArray(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public DynamicArray() { setTitle("\u7528\u52A8\u6001\u6570\u7EC4\u4FDD\u5B58\u5B66\u751F\u59D3\u540D"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 337, 269); 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); list = new JList(); scrollPane.setViewportView(list); JPanel panel_1 = new JPanel(); scrollPane.setColumnHeaderView(panel_1); JLabel label = new JLabel("\u5B66\u751F\u59D3\u540D\uFF1A"); panel_1.add(label); textField = new JTextField(); panel_1.add(textField); textField.setColumns(10); panel.setPreferredSize(new Dimension(100, 10)); contentPane.add(panel, BorderLayout.EAST); panel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); JButton button = new JButton("\u6DFB\u52A0\u5B66\u751F"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { do_button_actionPerformed(e); } }); panel.add(button); JButton button_1 = new JButton("\u5220\u9664\u5B66\u751F"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { do_button_1_actionPerformed(e); } }); panel.add(button_1); } private ArrayList<String> arraylist = new ArrayList<String>(); private JTextField textField; private JList list; protected void do_button_actionPerformed(ActionEvent e) { textField.requestFocusInWindow(); textField.selectAll();// 选择文本框文本准备下次输入 String text = textField.getText();// 获取用户输入姓名 if (text.isEmpty())// 过滤为输入姓名的情况 return; arraylist.add(text);// 把姓名添加到数组集合中 replaceModel();// 把数组集合中内容显示到界面列表控件中 } protected void do_button_1_actionPerformed(ActionEvent e) { Object value = list.getSelectedValue();// 获取列表控件的选择项 arraylist.remove(value);// 从数组集合中移除用户的选择项 replaceModel();// 把数组集合中内容显示到界面列表控件中 } private void replaceModel() { // 为列表控件设置数据模型显示数组集合中的数据 list.setModel(new AbstractListModel() { @Override public int getSize() {// 获取数组大小 return arraylist.size(); } @Override public Object getElementAt(int index) {// 获取指定索引元素 return arraylist.get(index); } }); } }
相关推荐
接着,定义一个ArrayList实例,用于存储待分组的对象,例如学生的姓名或ID。这些数据可以先用List初始化,然后再转换为ArrayList。 ```csharp using System; using System.Collections; // 假设我们有以下数据 ...
例如,可以使用ArrayList来动态存储学生对象,方便插入和删除操作。 - 查找算法:在查询学生信息时,可能需要实现二分查找、线性查找等算法,以高效地定位目标学生。 - 排序算法:如果需要按学号、姓名等排序学生...
- `ArrayList`是Java集合框架的一部分,它是一个动态数组,可以存储任意类型的对象。在这里,`ArrayList`被用作存储学生对象的容器。 4. **类设计**: - `Student`类包含了表示一个学生所需的基本属性:`id`(学号...
通过数组或更高级的集合框架(如ArrayList),系统能有效地管理大量学生信息,实现增删改查的基本功能。例如,添加一个新学生到系统,就是创建一个新的学生对象并将其插入到学生数组中;删除一个学生,就是找到对应...
这通常需要用到数据结构,比如数组或集合框架中的ArrayList、LinkedList或HashMap。根据需求,我们可以选择合适的数据结构来优化性能和方便操作。 3. **文件输入/输出**: 为了持久化存储电子簿中的数据,我们需要...
4. **集合与列表**:为了存储多个学生对象,开发者可能会使用`List<T>`或其他集合类,如`ArrayList`,来组织和操作多个学生实例。 5. **文件I/O**:为了持久化存储数据,程序可能使用C#的文件操作功能,如`...
如果希望将学生信息保存到磁盘并加载,可以使用FileInputStream和FileOutputStream读写文件,或者使用ObjectInputStream和ObjectOutputStream进行对象序列化和反序列化,以便持久化数据。 总的来说,这个Java入门小...
例如,添加多个TextBox用于输入学生姓名,一个ListBox或DataGridView用于显示分组结果,以及多个Button执行不同操作。 2. **数据处理**:在处理数据时,可能需要将学生名字存储到数组或列表中。可以使用ArrayList或...
在这个课程设计中,还会涉及到基本的文件操作,如读取和保存学生的选课信息。Java提供了丰富的I/O流类库,可以用来处理这些需求。例如,使用`FileWriter`和`BufferedWriter`写入文件,`FileReader`和`BufferedReader...
数组可以提供固定大小的存储空间,而ArrayList则允许动态扩展,更适合于数量不确定的学生数据。 4. **面向对象编程**:Java是面向对象的语言,因此学生信息很可能被封装在`Student`类中,包含了学号、姓名、兴趣等...
4. **数据结构**:为了存储和管理学生数据,可能使用了数组、链表或集合(如ArrayList或LinkedList)。集合框架是Java中处理数据的重要工具。 5. **异常处理**:在处理文件操作或用户输入时,异常处理(try-catch-...
1. 数据结构与数据存储:学生信息被存储在一个数据结构中,可能是数组、链表或者更复杂的集合类如ArrayList或LinkedList。数据结构的选择取决于系统需求和性能优化考虑。 2. 类与对象:Java是面向对象的编程语言,...
- 使用字符串数组`name`和`grade`存储学生姓名和成绩,初始容量为100,可以根据实际需求调整。 5. **功能实现**: - **添加学生**:通过`textName`和`textGrade`获取用户输入的姓名和成绩,然后将数据保存到数组...
一种可能的方式是用数组或ArrayList来保存四张牌,每张牌可以表示为一个整数。然后,我们需要设计一套高效的算法,如深度优先搜索(DFS)或回溯法,尝试所有可能的运算顺序和组合,判断是否能得到24。这会涉及到递归...
这可能是一个二维数组、ArrayList、LinkedList或者更复杂的集合结构,如HashMap或TreeMap,用于关联学生ID与对应的成绩。 2. **用户界面**:JFrame将承载整个应用的界面元素。用户可以通过输入框输入学生信息,表格...
- **数据结构**:为了存储和处理成绩,可能使用数组、列表(ArrayList)或集合框架中的其他数据结构来保存学生和课程信息。 - **输入/输出流**:JAVA的System.in用于接收用户在控制台的输入,System.out.println()...
ArrayList是Java集合框架中的一员,它是一个动态数组,允许存储和操作可变大小的对象列表。在iStudentManager的早期版本中,开发团队选择了ArrayList作为主要的数据结构来存储学生信息。ArrayList提供了添加、删除、...
使用Java集合框架(如ArrayList、HashMap)存储和管理财务记录,同时可能需要处理货币格式和汇率转换。 5. **图书管理系统**:系统可能包括图书添加、借阅、归还等功能,涉及数据库操作、用户权限管理。Java JDBC...
3. **数组和集合**:熟悉数组的创建、遍历和排序,以及集合框架中的ArrayList、LinkedList、HashSet、HashMap等容器的使用。例如,编写一个程序,读取用户输入的一组数字,存储到数组或集合中,并进行排序或去重。 ...
2. **数据结构**:为了存储联系人信息,可能使用了数组、链表或者集合框架中的`ArrayList`或`LinkedList`。这些数据结构便于添加、删除和查找联系人记录。 3. **面向对象编程**:在Java中,通常会创建一个`Contact`...