在进行某一个项目的开发时我们往往 需要将数组进行排序,我们固然后很多排序算法可以实现,但是如果每次都需要我们编写相关的程序来实现的话就有些麻烦了,其实在java中的数组变量有一个sort方法可以很方便的是实现我们数组的排序。
1.打开IDE: 所谓IED就是java的开发环境,小编采用的是eclipse软件。
2.建立java工程: 建立一个java工程,其具体的目录结构和初始的代码如下图所示。
1.类的结构: 由于该排序采用的是java中集成的的方法,所以,该部分代码相对简单一些,主要由四个方法组成,构造方法、数据获取方法、事件处理方法,main方法。例中的属性主要设计到,窗口的的模块,如图所示。
2.构造方法: 该方法主要用来对桌面控件进行相关的配置,设计出自己需要的窗口界面,大小等。具体代码如下: public MySort() { jp.setLayout(null); jl.setBounds(30, 10, 340, 36); jp.add(jl); jl2.setBounds(30, 130, 100, 30); jp.add(jl2); jsp_in.setBounds(30, 45, 340, 70); jp.add(jsp_in); jta_in.setLineWrap(true); jsp_out.setBounds(30, 165, 340, 70); jp.add(jsp_out); jta_out.setLineWrap(true); jb_act.setBounds(200, 125, 70, 30); jp.add(jb_act); jb_cle.setBounds(300, 125, 70, 30); jp.add(jb_cle); jb_act.addActionListener(this); jb_cle.addActionListener(this); this.add(jp); this.setTitle("sort法排序"); this.setBounds(100, 100, 400, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); this.setResizable(false); }
3.数据获取: 由于窗口文本框中的数据是字符串且有可能无法使用,所以需要一个方法专门对此数据进行处理成,我们先要的数组,且含有排序方法的 实现具体代码如下: public void getArraySort() { String arrayStr = jta_in.getText().trim(); if (arrayStr.equals("")) { JOptionPane.showMessageDialog(null, "请输入数字内容"); return; } for (int i = 0; i < arrayStr.length(); i++) { char charAt = arrayStr.charAt(i); if (!Character.isDigit(charAt) && (charAt != ' ') && (charAt != '.')) { JOptionPane.showMessageDialog(null, "输入包含非数字内容"); jta_in.setText(""); return; } } String[] numStrs = arrayStr.split(" {1,}"); double[] numArray = new double[numStrs.length]; for (int i = 0; i < numArray.length; i++) { String[] temp = numStrs[i].split(".{1,}"); char[] tempstrs = numStrs[i].toCharArray(); if ((tempstrs[0] == '.') || (tempstrs[tempstrs.length - 1] == '.') || (temp.length >= 3)) { JOptionPane.showMessageDialog(null, "输入包含非数字内容"); jta_in.setText(""); return; } numArray[i] = Double.valueOf(numStrs[i]); } array = numArray; jta_out.setText("输入的的原始数据是:\n"); for(String string:numStrs){ jta_out.append(string+" "); } jta_out.append("\n"); Arrays.sort(array); jta_out.append("排序后的数据是:\n"); for(double value:array){ jta_out.append(value+" "); } }
4.事件处理方法: 窗口中有两个按钮,该方法主要涉及到对实现按钮按下后所触发的事件,具体代码如下,: public void actionPerformed(ActionEvent e) { if (e.getSource() == jb_act) { getArraySort(); } if(e.getSource()==jb_cle){ jta_in.setText(""); jta_out.setText(""); } }
5.main方法: main方法使用里执行我们编写的类的,类需要实例化成一个对象以后才能执行,本方法中就实例化了一个类,具体操作代码如下:
1.编译执行: 单击“编译并运行”按钮,就可以看到我们做编写的界面效果了,如果大家觉得该效果不好的话也可以对构造方法进行改动。
2.验证效果: 接着我们根据提示往文本框中输入相关的数据,按下“排序”按钮就可以看到我们的效果了。