`

实例054 - 使用Arrays.sort方法对数组进行排序

 
阅读更多

心法领悟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();// 取消非规范化字符的输入有效性
        }
    }
}

 

 

  • 大小: 9.8 KB
分享到:
评论

相关推荐

    the-array-object-Java-sort.rar_java 对象排序

    现在,我们要按照学生的总分对数组进行降序排序,可以使用Java内置的`Arrays.sort()`方法,但这个方法默认只适用于基本类型。对于对象数组,我们需要提供一个`Comparator`接口的实现,以便定义比较规则: ```java /...

    Java常用方法大全

    - `Arrays.sort(array)` 对数组进行排序。 - `Arrays.copyOf(array, newLength)` 复制数组,指定新的长度。 - `Arrays.equals(array1, array2)` 比较两个数组是否相等。 - `Arrays.asList(array)` 将数组转换为...

    Java 实例 - 数组输出源代码-详细教程.zip

    例如,Java提供`System.arraycopy()`方法来复制数组的一部分到另一个数组,`Arrays.sort()`方法对数组进行排序,`Arrays.binarySearch()`进行二分查找等。这些功能都在`java.util.Arrays`类中。 此外,Java还支持...

    Java 实例 - 数组填充源代码-详细教程.zip

    2. `Arrays.sort()`:对数组进行排序。 七、集合与数组的转换 Java的集合框架如ArrayList、LinkedList等可以方便地与数组相互转换。`ArrayList.toArray()`方法可以把集合转换为数组,而`Arrays.asList()`则可将...

    java sort排序算法实例完整代码

    这个算法在Java中主要体现在`java.util.Arrays`和`java.util.Collections`两个类中,提供了对数组和集合的排序功能。下面我们将深入探讨`sort`排序算法的工作原理、性能分析以及实际应用示例。 ### 1. `Arrays.sort...

    Java5.0数组排序

    在Java 5.0之前,我们通常使用`Arrays.sort()`方法来对数组进行排序,但该方法的功能相对有限。Java 5.0中,`java.util.Arrays`类和`java.util.Collections`类都得到了升级,提供了更强大的排序功能。 一、Java 5.0...

    java 数组和字符串

    ` 对数组进行排序。 - `Arrays.copyOf(arr, newLength);` 复制数组并改变其长度。 - `Arrays.fill(arr, value);` 使用指定值填充数组。 - `Arrays.binarySearch(arr, key);` 在已排序的数组中查找指定元素。 - `...

    JAVA数组的排序方法实例.docx

    本文档详细介绍了两种在Java中对数组进行排序的方法:冒泡排序法与使用`Arrays.sort()`方法实现数组递增排序。这两种方法是Java编程中常见的排序手段,对于理解数组操作及算法优化具有重要意义。 #### 冒泡排序法...

    java数组及arrays类对数组的操作实例

    然后,我们使用 Arrays.sort() 方法对 a1 数组进行排序,并使用 System.out.println() 方法将排序结果输出。接着,我们使用 Arrays.binarySearch() 方法来查找 a1 数组中值为 4 的元素,并将查找结果输出。 接下来...

    java swing io 排序的几个小实例

    在Java中,我们可以使用Collections.sort()方法对集合进行排序,或者使用Arrays.sort()对数组进行排序。这些内置的方法已经实现了高效的排序算法,如快速排序和归并排序。然而,在实际开发中,有时我们需要自定义...

    华为Java面试题与详细代码

    最后,通过`Arrays.sort`对数组进行排序,可以选择升序或降序。排序后,可以遍历数组并从尾部开始输出结果。 2. **金额转换** 这是一道涉及字符串处理和格式化的问题。你需要编写一个程序,将阿拉伯数字的金额转换...

    大数据基本语法.docx

    - `Arrays.sort(array)`:对数组进行排序。 - `Collections.sort(collection)`:对集合进行排序。 - `Arrays.copyOf(array, length)`:创建一个新的数组,复制原有数组的部分或全部元素。 4. **Math类的方法**:...

    JAVA 对象数组按照多个属性进行排序

    对于对象数组,如果对象类实现了`Comparable`接口,我们可以直接使用`Arrays.sort()`方法对数组进行排序。但是,当需要按照多个属性排序时,我们需要自定义`Comparator`。例如,假设我们有一个`Person`类,包含`...

    JAVA中工具类Arrays和异常处理的实例操作.doc

    `Arrays.sort()`方法可以用来对数组进行排序。该方法支持各种基本数据类型的排序以及对象数组的排序。对于对象数组排序,可以通过提供一个比较器(Comparator)来指定排序规则。 **示例代码**: ```java import ...

    Java sort算法学习

    `sort`算法是Java标准库`java.util`包中的一个关键工具,它提供了一种高效地对数组或集合进行排序的方法。本资料旨在深入探讨Java中的排序算法,帮助开发者理解和应用它们。 Java中的排序主要涉及到`Arrays.sort()`...

    java类排序,很实用

    Java 提供了多种方法来对类实例进行排序,主要包括 `Arrays.sort()` 和 `Collections.sort()` 方法。这两个方法都是 Java 核心库中的强大工具,能够有效地对数组和集合进行排序。 首先,让我们关注 `Arrays.sort()`...

    定义比较器,比较数组中值大小

    现在我们有了自定义的比较器,可以使用它对数组进行排序。例如,有以下整数数组: ```java Integer[] numbers = {5, -3, 2, -7, 0}; ``` 我们可以这样使用自定义的比较器进行排序: ```java Arrays.sort...

    JavaSE进阶-02-数组.pdf

    - 对数组进行排序可以使用内置的`Arrays.sort()`方法,对于基本类型数组,它会自动进行升序排列。 - 查找数组元素,通常可以使用线性搜索或二分搜索(对已排序数组)。 5. **Arrays工具类** - Java提供了一个`...

    Java中集合和数组的排序方式小结

    首先,`Arrays`类提供了对数组进行排序的功能,无论是基本数据类型数组还是对象数组。例如,对于整型数组,我们可以直接调用`Arrays.sort()`方法: ```java int[] intArray = new int[] {4, 1, 3, -23}; Arrays....

Global site tag (gtag.js) - Google Analytics