心法领悟054:有效利用Arrays类。
Arrays类提供了创建、操作、搜索和排序数组的方法。在程序开发中有效利用Arrays类的各种方法来完成数组操作将大幅度提升程序开发的效率,避免错误。
import java.awt.BorderLayout; import java.awt.EventQueue; import java.util.Arrays; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.UIManager; import javax.swing.event.CaretListener; import javax.swing.event.CaretEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; public class SortArray extends JFrame { private JPanel contentPane; private JTextField arrayField; private JTextArea sortArea; /** * 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 { SortArray frame = new SortArray(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public SortArray() { setTitle("\u4F7F\u7528Sort\u65B9\u6CD5\u5BF9\u6570\u7EC4\u8FDB\u884C\u6392\u5E8F"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel label = new JLabel( "\u8F93\u5165\u6570\u7EC4\u5185\u5BB9\uFF0C\u7A7A\u683C\u4E3A\u6570\u7EC4\u5143\u7D20\u5206\u9694\u7B26"); label.setBounds(6, 6, 265, 18); contentPane.add(label); arrayField = new JTextField(); arrayField.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { char key = e.getKeyChar(); String mask = "0123456789 " + (char) 8; if (mask.indexOf(key) == -1) { e.consume(); } } }); arrayField.setBounds(6, 36, 422, 30); contentPane.add(arrayField); arrayField.setColumns(10); JButton button = new JButton("\u6392\u5E8F"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { do_button_actionPerformed(e); } }); button.setBounds(164, 78, 90, 30); contentPane.add(button); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(6, 118, 422, 138); contentPane.add(scrollPane); sortArea = new JTextArea(); sortArea.setLineWrap(true); scrollPane.setViewportView(sortArea); } protected void do_button_actionPerformed(ActionEvent e) { String text = arrayField.getText();// 获取用户输入 String[] arrayStr = text.split(" {1,}");// 拆分输入为数组 int[] array = new int[arrayStr.length];// 创建整数类型数组 sortArea.setText("数组原有内容:\n"); for (String string : arrayStr) {// 输出原有数组内容 sortArea.append(string + " "); } for (int i = 0; i < array.length; i++) {// 初始化整形数组 array[i] = Integer.parseInt(arrayStr[i]); } sortArea.append("\n"); Arrays.sort(array);// 使用sort方法对整形数组进行排序 sortArea.append("数组排序后的内容:\n"); for (int value : array) {// 输出排序后的数组内容 sortArea.append(value + " "); } } protected void do_arrayField_keyPressed(KeyEvent e) { char key = e.getKeyChar();// 获取用户按键字符 String mask = "0123456789 " + (char) 8;// 定义规范化字符模板 if (mask.indexOf(key) == -1) {// 判断按键字符是否属于规范化字符范围 e.consume();// 取消非规范化字符的输入有效性 } } }
相关推荐
现在,我们要按照学生的总分对数组进行降序排序,可以使用Java内置的`Arrays.sort()`方法,但这个方法默认只适用于基本类型。对于对象数组,我们需要提供一个`Comparator`接口的实现,以便定义比较规则: ```java /...
- `Arrays.sort(array)` 对数组进行排序。 - `Arrays.copyOf(array, newLength)` 复制数组,指定新的长度。 - `Arrays.equals(array1, array2)` 比较两个数组是否相等。 - `Arrays.asList(array)` 将数组转换为...
例如,Java提供`System.arraycopy()`方法来复制数组的一部分到另一个数组,`Arrays.sort()`方法对数组进行排序,`Arrays.binarySearch()`进行二分查找等。这些功能都在`java.util.Arrays`类中。 此外,Java还支持...
2. `Arrays.sort()`:对数组进行排序。 七、集合与数组的转换 Java的集合框架如ArrayList、LinkedList等可以方便地与数组相互转换。`ArrayList.toArray()`方法可以把集合转换为数组,而`Arrays.asList()`则可将...
这个算法在Java中主要体现在`java.util.Arrays`和`java.util.Collections`两个类中,提供了对数组和集合的排序功能。下面我们将深入探讨`sort`排序算法的工作原理、性能分析以及实际应用示例。 ### 1. `Arrays.sort...
在Java 5.0之前,我们通常使用`Arrays.sort()`方法来对数组进行排序,但该方法的功能相对有限。Java 5.0中,`java.util.Arrays`类和`java.util.Collections`类都得到了升级,提供了更强大的排序功能。 一、Java 5.0...
` 对数组进行排序。 - `Arrays.copyOf(arr, newLength);` 复制数组并改变其长度。 - `Arrays.fill(arr, value);` 使用指定值填充数组。 - `Arrays.binarySearch(arr, key);` 在已排序的数组中查找指定元素。 - `...
本文档详细介绍了两种在Java中对数组进行排序的方法:冒泡排序法与使用`Arrays.sort()`方法实现数组递增排序。这两种方法是Java编程中常见的排序手段,对于理解数组操作及算法优化具有重要意义。 #### 冒泡排序法...
然后,我们使用 Arrays.sort() 方法对 a1 数组进行排序,并使用 System.out.println() 方法将排序结果输出。接着,我们使用 Arrays.binarySearch() 方法来查找 a1 数组中值为 4 的元素,并将查找结果输出。 接下来...
在Java中,我们可以使用Collections.sort()方法对集合进行排序,或者使用Arrays.sort()对数组进行排序。这些内置的方法已经实现了高效的排序算法,如快速排序和归并排序。然而,在实际开发中,有时我们需要自定义...
最后,通过`Arrays.sort`对数组进行排序,可以选择升序或降序。排序后,可以遍历数组并从尾部开始输出结果。 2. **金额转换** 这是一道涉及字符串处理和格式化的问题。你需要编写一个程序,将阿拉伯数字的金额转换...
- `Arrays.sort(array)`:对数组进行排序。 - `Collections.sort(collection)`:对集合进行排序。 - `Arrays.copyOf(array, length)`:创建一个新的数组,复制原有数组的部分或全部元素。 4. **Math类的方法**:...
对于对象数组,如果对象类实现了`Comparable`接口,我们可以直接使用`Arrays.sort()`方法对数组进行排序。但是,当需要按照多个属性排序时,我们需要自定义`Comparator`。例如,假设我们有一个`Person`类,包含`...
`Arrays.sort()`方法可以用来对数组进行排序。该方法支持各种基本数据类型的排序以及对象数组的排序。对于对象数组排序,可以通过提供一个比较器(Comparator)来指定排序规则。 **示例代码**: ```java import ...
`sort`算法是Java标准库`java.util`包中的一个关键工具,它提供了一种高效地对数组或集合进行排序的方法。本资料旨在深入探讨Java中的排序算法,帮助开发者理解和应用它们。 Java中的排序主要涉及到`Arrays.sort()`...
Java 提供了多种方法来对类实例进行排序,主要包括 `Arrays.sort()` 和 `Collections.sort()` 方法。这两个方法都是 Java 核心库中的强大工具,能够有效地对数组和集合进行排序。 首先,让我们关注 `Arrays.sort()`...
现在我们有了自定义的比较器,可以使用它对数组进行排序。例如,有以下整数数组: ```java Integer[] numbers = {5, -3, 2, -7, 0}; ``` 我们可以这样使用自定义的比较器进行排序: ```java Arrays.sort...
- 对数组进行排序可以使用内置的`Arrays.sort()`方法,对于基本类型数组,它会自动进行升序排列。 - 查找数组元素,通常可以使用线性搜索或二分搜索(对已排序数组)。 5. **Arrays工具类** - Java提供了一个`...
首先,`Arrays`类提供了对数组进行排序的功能,无论是基本数据类型数组还是对象数组。例如,对于整型数组,我们可以直接调用`Arrays.sort()`方法: ```java int[] intArray = new int[] {4, 1, 3, -23}; Arrays....