java排序函数,java排序函数对负数的排序会反吗

本文目录一览:

java自动排序函数…….

要实现排序功能,一般有两种途径,这里对基本类型不适用,基本类型一般有Arrays中的静态方法.

1.对象本身实现Comparable接口,那么该类的实例就是可以排序的.

有关Comparable:

只要实现了Comparable接口,就可以调用Collections的sort方法对集合中的元素排序.

2.指定一个Comparator,也就是实现了Comparator的类的一个实例.

但是Java本身只提供了一个Comparator的实现,就是Collections.reverseOrder().

该方法返回的是一个已经实现了Comparable接口的反序.

看一下Comparator的全部内容:

public interface Comparator {

int compare(Object o1, Object o2);

boolean equals(Object obj);

}

定义了两个方法,其实我们一般都只需要实现compare方法就行了,因为类都是默认从Object继承

所以会使用Object的equals方法.

Comparator一般都作为一个匿名类出现,对于没有实现Comparable的对象的集合,排序的时候

需要指定一个Comparator.

这里举例说明

对于实现了Comparable的类我们就用最简单的Integer

List list=new ArrayList();

list.add(new Integer(3));

list.add(new Integer(53));

list.add(new Integer(34));

Collections.sort(list);

对于没有实现Comparable的,我们就用Object,按照hashCode大小来排序.

List list= new ArrayList();

list.add(new Object());

list.add(new Object());

list.add(new Object());

Collections.sort(list,new Comparator(){ public int compare(Object o1, Object o2){

return (o1.hashCode()-o2.hashCode());

})

如何在Java中从键盘输入10个数,用选择法按降序排序并输出?

在Java中在数组中保存10个数,调用下面的排序函数,用选择法按降序排序:public static void selectionSort(int[] arr){ for (int i = 0; i arr.length – 1; i++) { int max = i; for (int j = i + 1; j arr.length; j++) { if (arr[max] arr[j]) { max = j; } } if (max != i) { int tmp = arr[max]; arr[max] = arr[i]; arr[i] = tmp; } } }

java定制排序

文件名:Frame1.java

关键代码:

//选择排序法函数

public void select_Sort(int[] num)

{

int i,j,MX;

int temp;

for(i = 0; inum.length-1; i++)

{

MX = i ;

for(j = i+1 ; jnum.length; j++)

{

if(num[MX] num[j])

MX = j ;

}

temp = num[i];

num[i] = num[MX];

num[MX] = temp;

}

}

//插入排序函数

public void insert_Sort(int[] data)

{

int i,j,mx;

int key ;

for(i=1; i data.length -1; i++)

{

key = data[i];

mx = i;

for(j= i-1;j0;j–)

{

if(keydata[j])

{

data[j+1] = data[j];

mx = j ;

}

}

data[mx]=key;

}

}

全部代码

/////////////////////////

package mytest;

import java.awt.BorderLayout;

import java.awt.Dimension;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JLabel;

import java.awt.Rectangle;

import javax.swing.JTextField;

import javax.swing.JButton;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.KeyAdapter;

import javax.swing.JOptionPane;

public class Frame1 extends JFrame {

JPanel contentPane;

JLabel jLabel1 = new JLabel();

JLabel jLabel2 = new JLabel();

JLabel jLabel3 = new JLabel();

JLabel jLabel4 = new JLabel();

JTextField txt1 = new JTextField();

JTextField txtOrder = new JTextField();

JButton btn2 = new JButton();

JTextField txt2 = new JTextField();

JTextField txtIn = new JTextField();

JButton btn1 = new JButton();

public Frame1() {

try {

setDefaultCloseOperation(EXIT_ON_CLOSE);

jbInit();

} catch (Exception exception) {

exception.printStackTrace();

}

}

/**

* Component initialization.

*

* @throws java.lang.Exception

*/

private void jbInit() throws Exception {

contentPane = (JPanel) getContentPane();

contentPane.setLayout(null);

setSize(new Dimension(457, 432));

setTitle(“Frame Title”);

jLabel1.setText(“排序前”);

jLabel1.setBounds(new Rectangle(30, 99, 59, 36));

jLabel2.setText(“排序后(1)”);

jLabel2.setBounds(new Rectangle(27, 183, 66, 36));

jLabel3.setText(“排序后(2)”);

jLabel3.setBounds(new Rectangle(29, 259, 76, 36));

jLabel4.setText(“用户输入”);

jLabel4.setBounds(new Rectangle(28, 35, 71, 36));

txt1.setBounds(new Rectangle(116, 182, 307, 33));

txtOrder.setBounds(new Rectangle(118, 106, 307, 37));

btn2.setBounds(new Rectangle(263, 327, 162, 42));

btn2.setText(“插入排序”);

btn2.addActionListener(new Frame1_btn2_actionAdapter(this));

txt2.setBounds(new Rectangle(118, 259, 307, 33));

txtIn.setText(“请输入数字,并按回车键。一次只能输入一个数字”);

txtIn.setBounds(new Rectangle(116, 37, 306, 39));

txtIn.addKeyListener(new Frame1_txtIn_keyAdapter(this));

btn1.setBounds(new Rectangle(28, 327, 162, 42));

btn1.setText(“选择排序”);

btn1.addActionListener(new Frame1_btn1_actionAdapter(this));

contentPane.add(jLabel4);

contentPane.add(jLabel1);

contentPane.add(txtOrder);

contentPane.add(jLabel2);

contentPane.add(txt1);

contentPane.add(jLabel3);

contentPane.add(txt2);

contentPane.add(txtIn);

contentPane.add(btn1);

contentPane.add(btn2);

}

int[] Number1=new int[10];

int[] Number2=new int[10];

int i=0;

public void txtIn_keyPressed(KeyEvent e) {

try{

if(e.getKeyChar()==’\n’){

Number1[i]=Integer.parseInt(txtIn.getText().trim());

Number2[i]=Integer.parseInt(txtIn.getText().trim());

String txt=txtOrder.getText().trim();

txtOrder.setText(txt+txtIn.getText().trim()+”,”);

txtIn.setText(“”);

txtIn.requestFocus(true);

if(++i10){

JOptionPane.showMessageDialog(this,”只能输入10个整数!”);

txtIn.setText(“”);

return;

}

}

}catch(Exception ex){

JOptionPane.showMessageDialog(this,ex.getMessage());

txtIn.setText(“”);

ex.printStackTrace();

}

}

//选择排序法函数

public void select_Sort(int[] num)

{

int i,j,MX;

int temp;

for(i = 0; inum.length-1; i++)

{

MX = i ;

for(j = i+1 ; jnum.length; j++)

{

if(num[MX] num[j])

MX = j ;

}

temp = num[i];

num[i] = num[MX];

num[MX] = temp;

}

}

//选择排序按钮监听方法

public void btn1_actionPerformed(ActionEvent e) {

txt1.setText(“”);

select_Sort(Number1);//调用选择排序函数

for(int j=0;jNumber1.length;j++){

String txt=txt1.getText().trim();

txt1.setText(txt+Number1[j]+”,”);

}

}

//插入排序函数

public void insert_Sort(int[] data)

{

int i,j,mx;

int key ;

for(i=1; i data.length -1; i++)

{

key = data[i];

mx = i;

for(j= i-1;j0;j–)

{

if(keydata[j])

{

data[j+1] = data[j];

mx = j ;

}

}

data[mx]=key;

}

}

public void btn2_actionPerformed(ActionEvent e) {

txt2.setText(“”);

insert_Sort(Number2);

for(int j=0;jNumber2.length;j++){

String txt=txt2.getText().trim();

txt2.setText(txt+Number2[j]+”,”);

}

}

//主函数

public static void main(String[] arges){

Frame1 F=new Frame1();

F.setVisible(true);

}

}

class Frame1_btn2_actionAdapter implements ActionListener {

private Frame1 adaptee;

Frame1_btn2_actionAdapter(Frame1 adaptee) {

this.adaptee = adaptee;

}

public void actionPerformed(ActionEvent e) {

adaptee.btn2_actionPerformed(e);

}

}

class Frame1_btn1_actionAdapter implements ActionListener {

private Frame1 adaptee;

Frame1_btn1_actionAdapter(Frame1 adaptee) {

this.adaptee = adaptee;

}

public void actionPerformed(ActionEvent e) {

adaptee.btn1_actionPerformed(e);

}

}

class Frame1_txtIn_keyAdapter extends KeyAdapter {

private Frame1 adaptee;

Frame1_txtIn_keyAdapter(Frame1 adaptee) {

this.adaptee = adaptee;

}

public void keyPressed(KeyEvent e) {

adaptee.txtIn_keyPressed(e);

}

}

java常用函数方法

Java的一些常用函数,方法总结:

1:数组方面:

数组是一个对象,数组名可以理解和C++里面一样,

1):System.arraycopy(src,srcindex,dst,dstindex,src.length);

2):java.util.Arrays.sort(数组名);//块数排序法进行排序

3):java.util.Arrays.binarySearch(arr,key);//从哪里收,关键值,返回索引.没有的话返回-1

4):java.util.Array.fill(arr,value),设置数组初始值

5):Array.equals(arr1,arr2)//比较两个数组中元素是不是全部相等,是返回true,不是返回false

2:时间方面:

public static String dateToStr(java.util.Date date)

{

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

String str = sdf.format(date);

return str;

}

import java.text.SimpleDateFormat;

import java.util.Calendar;

public class DateUtil

{

public static java.util.Date parseDate(String dateStr, String format)

{

java.util.Date date = null;

try

{

java.text.DateFormat df = new java.text.SimpleDateFormat(format);

String dt = dateStr.replaceAll(“-“, “/”);

if ((!dt.equals(“”)) (dt.length() format.length()))

{

dt += format.substring(dt.length()).replaceAll(“[YyMmDdHhSs]”, “0”);

}

date = (java.util.Date) df.parse(dt);

}

catch (Exception e)

{

}

return date;

}

public static java.util.Date parseDate(String dateStr)

{

return parseDate(dateStr, “yyyy/MM/dd”);

}

public static String format(java.util.Date date, String format)

{

String result = “”;

try

{

if (date != null)

{

java.text.DateFormat df = new java.text.SimpleDateFormat(format);

result = df.format(date);

}

}

catch (Exception e)

{

}

return result;

}

public static String format(java.util.Date date)

{

return format(date, “yyyy/MM/dd”);

}

public static int getYear(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.YEAR);

}

public static int getMonth(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.MONTH) + 1;

}

public static int getDay(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.DAY_OF_MONTH);

}

public static int getHour(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.HOUR_OF_DAY);

}

public static int getMinute(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.MINUTE);

}

public static int getSecond(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.get(java.util.Calendar.SECOND);

}

public static long getMillis(java.util.Date date)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTime(date);

return c.getTimeInMillis();

}

public static String getDate(java.util.Date date)

{

return format(date, “yyyy/MM/dd”);

}

public static String getTime(java.util.Date date)

{

return format(date, “HH:mm:ss”);

}

public static String getDateTime(java.util.Date date)

{

return format(date, “yyyy/MM/dd HH:mm:ss”);

}

public static java.util.Date addDate(java.util.Date date, int day)

{

java.util.Calendar c = java.util.Calendar.getInstance();

c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);

return c.getTime();

}

public static int diffDate(java.util.Date date, java.util.Date date1)

{

return (int) ((getMillis(date) – getMillis(date1)) / (24 * 3600 * 1000));

}

public static String getMonthBegin(String strdate)

{

java.util.Date date = parseDate(strdate);

return format(date, “yyyy-MM”) + “-01”;

}

public static String getMonthEnd(String strdate)

{

java.util.Date date = parseDate(getMonthBegin(strdate));

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

calendar.add(Calendar.MONTH, 1);

calendar.add(Calendar.DAY_OF_YEAR, -1);

return formatDate(calendar.getTime());

}

public static String formatDate(java.util.Date date)

{

return formatDateByFormat(date, “yyyy-MM-dd”);

}

public static String formatDateByFormat(java.util.Date date, String format)

{

String result = “”;

if (date != null)

{

try

{

SimpleDateFormat sdf = new SimpleDateFormat(format);

result = sdf.format(date);

}

catch (Exception ex)

{

ex.printStackTrace();

}

}

return result;

}

}

Java日期格式化及其使用例子

1 SimpleDateFormat担当重任,怎样格式化都行

import java.util.Date;

import java.text.SimpleDateFormat;

public class Demo

{

public static void main(String[] args)

{

Date now=new Date();

SimpleDateFormat f=newSimpleDateFormat(“今天是”+”yyyy年MM月dd日 E kk点mm分”);

System.out.println(f.format(now));

f=new SimpleDateFormat(“a hh点mm分ss秒”);

System.out.println(f.format(now));

}

}

2 从字符串到日期类型的转换:

import java.util.Date;

import java.text.SimpleDateFormat;

import java.util.GregorianCalendar;

import java.text.*;

publicclass Demo

{

public static void main(String[] args)

{

String strDate=”2005年04月22日”;

//注意:SimpleDateFormat构造函数的样式与strDate的样式必须相符

SimpleDateFormat simpleDateFormat=new SimpleDateFormat(“yyyy年MM月dd日”);

//必须捕获异常

try

{

Date date=simpleDateFormat.parse(strDate);

System.out.println(date);

}

catch(ParseException px)

{

px.printStackTrace();

}

}

}

3 将毫秒数换转成日期类型

import java.util.Date;

import java.text.SimpleDateFormat;

import java.util.GregorianCalendar;

import java.text.*;

public class Demo

{

public static void main(String[] args)

{

long now=System.currentTimeMillis();

System.out.println(“毫秒数:”+now);

Date dNow=new Date(now);

System.out.println(“日期类型:”+dNow);

}

}

4 获取系统时期和时间,转换成SQL格式后更新到数据库

java.util.Date d=new java.util.Date(); //获取当前系统的时间

//格式化日期

new java.text.SimpleDateFormat s= new java.text.SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

String dateStr = s.format(d); //转为字符串

使用RS更新数据库,仍然要用rs.updateString,而不是rs.updateDade。

rs.updateString(“regtime”,dateStr); //regtime字段为datetime类型的

5 按本地时区输出当前日期

Date myDate = new Date();

System.out.println(myDate.toLocaleString());

输出结果为:

2003-5-30

6 如何格式化小数

DecimalFormat df = new DecimalFormat(“,###.00”);

double aNumber = 33665448856.6568975;

String result = df.format(aNumber);

Sytem. out.println(result);

输出结果为:

33,665,448,856.66

其他:获取毫秒时间 System.currentTimeMillis();

7 在数据库里的日期只以年-月-日的方式输出

定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);

sql语句为:String sqlStr = “select bookDate from roomBook where bookDate between ‘2007-4-10’ and ‘2007-4-25′”;

输出:

System.out.println(df.format(rs.getDate(“bookDate”)));

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/301629.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-30 16:09
下一篇 2024-12-30 16:09

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Python中capitalize函数的使用

    在Python的字符串操作中,capitalize函数常常被用到,这个函数可以使字符串中的第一个单词首字母大写,其余字母小写。在本文中,我们将从以下几个方面对capitalize函…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • 三角函数用英语怎么说

    三角函数,即三角比函数,是指在一个锐角三角形中某一角的对边、邻边之比。在数学中,三角函数包括正弦、余弦、正切等,它们在数学、物理、工程和计算机等领域都得到了广泛的应用。 一、正弦函…

    编程 2025-04-29

发表回复

登录后才能评论