「java数组排列」Java数组排列组合

博主:adminadmin 2022-12-18 06:33:11 68

本篇文章给大家谈谈java数组排列,以及Java数组排列组合对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中对于数组的排序

package sss;public class F

{

public static void main(String[] args)

{

int ns[]={1,2,3,4,5,6};

int t=0;

for(int i=0; i6;i++)

{

for(int j=5; j0;j--)

{

if(ns[j]ns[j-1])

{

t=ns[j];

ns[j]=ns[j-1];

ns[j-1]=t;

}

}

}

for(int i=0; i6;i++)

{

System.out.println(ns[i]);

}

}} 我用你的代码重新写一次,运行过,没什么问题吖, 所有的数字都按大到小排序,你可以对比对比我写这个代码,看你原本的代码哪里出错了

java 数组升序排列

 public static void main(String args[])

    { 

       try

       {

       int i, sum=0;

       FileWriter f_out=new FileWriter("data.txt");

       System.out.println("请输入学生的个数");

       int n=new Scanner(System.in).nextInt();

       int s[]=new int [n];

       for( i=0;in;i++)

         {

          System.out.println("请输入第"+(i+1)+"个学生的成绩");

            s[i]=new Scanner(System.in).nextInt();

            if (s[i]0||s[i]100)

            {            

            System.out.println("输入错误,请重新输入");           

            s[i]=new Scanner(System.in).nextInt();

            }

            

            

         }

       Arrays.sort(s);

       for(int j=0;jn;j++){

       f_out.write(s[j]+"\n");  

       }

f_out.close();

         FileReader f_in=new FileReader("data.txt");

         for(int c=f_in.read();c!=-1;c=f_in.read())

         System.out.print((char)c+"  ");

       

         f_in.close();

       }    

        catch(IOException e)

        {

         System.err.println(e);

         e.printStackTrace();

        }      

    }

这样应该就好了。

用java写 定义一个数组 将它们从小到大排列

最佳答案:冒泡排序算法。一下为C#语言例子:

int temp = 0;

int[] arr = { 23, 44, 66, 76, 98, 11, 3, 9, 7 };

Console.WriteLine("排序前的数组:");

foreach (int item in arr)

{

Console.Write(item + " ");

}

Console.WriteLine();

for (int i = 0; i arr.Length-1; i++)

{

for (int j = 0; j arr.Length-1-i; j++)

{

if (arr[j+1] arr[j])

{

temp = arr[j+1];arr[j+1] = arr[j];arr[j] = temp; }

}

}

Console.WriteLine("排序后的数组:");

foreach (int item in arr)

{

Console.Write(item + " ");

}

Console.WriteLine();

Console.ReadKey();

}

java数组排序

Java API针对集合类型排序提供了两种支持:

java.util.Collections.sort(java.util.List)

java.util.Collections.sort(java.util.List, java.util.Comparator)

第一个方法要求所排序的元素类必须实现java.lang.Comparable接口。

第二个方法要求实现一个java.util.Comparator接口。

java.lang.Comparable接口和java.util.Comparator接口是Java对排序最提供最基本支持。这两个接口不但可以用于集合元素排序,还可以用于数组排序。

如果数组或集合元素是String类型,则可以利用Java API实现的ComparatorString对象String.CASE_INSENSITIVE_ORDER为容器元素排序。

下面给出两个里测试,涵盖集合和数组的排序,并且还演示了数组和集合的相互转换,附件里面是完整的排序演示代码。

方法一:实现Comparable接口排序package collsort.comparable;

package com.cvicse.sort.comparable;

public class Cat implements ComparableCat {

private int age;

private String name;

public Cat(int age, String name) {

this.age = age;

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

......

public int compareTo(Cat o) {

return this.getAge() - o.getAge();

}

......

} 通过实现Comparable接口实现个性化排序测试。排序测试,Collection.sort(list)升序排列Collections.sort(list, Collections.reverseOrder());降序排列;Collections.reverse(list);反转排序,先输出列表最后一个元素

public class TestComparable {

public static void main(String args[]) {

test();

test2();

}

public static void test() {

......

ListCat listCat1 = new ArrayListCat();

Cat cat1 = new Cat(34, "hehe");

Cat cat2 = new Cat(12, "haha");

Cat cat3 = new Cat(23, "leizhimin");

Cat cat4 = new Cat(13, "lavasoft");

listCat1.add(cat1);

listCat1.add(cat2);

listCat1.add(cat3);

......

System.out.println("调用Collections.sort(ListT list)listCat2升序排序:");

Collections.sort(listCat1);

System.out.println("降序排列元素:");

Collections.sort(listCat1, Collections.reverseOrder());

System.out.println("Collections.reverse 从列表中最后一个元素开始输出:");

Collections.reverse(listCat1);

......

}

/**

* 针对数组的排序

*/

public static void test2() {

String[] strArray = new String[] { "z", "a", "C" };

System.out.println("数组转换为列表");

ListString list = Arrays.asList(strArray);

System.out.println("顺序排序列表");

Collections.sort(list);

System.out

.println("按String实现的Comparator对象String.CASE_INSENSITIVE_ORDER排序----");

Collections.sort(list, String.CASE_INSENSITIVE_ORDER);

System.out.println("倒序排序列表");

Collections.sort(list, Collections.reverseOrder());

......

}

}方法二:实现Comparator接口排序

public class Person {

private int age;

private String name;

......

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

......

} 实现了Comparator接口,重写了compare方法

import java.util.Comparator;

public class PersonComparator implements ComparatorPerson {

public int compare(Person o1, Person o2) {

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

}

} 测试方法

public class TestComparator {

public static void main(String args[]) {

test1();

}

public static void test1() {

System.out.println("升序排序测试:");

ListPerson listPerson = new ArrayListPerson();

Person person1 = new Person(34, "lavasoft");

Person person2 = new Person(12, "lavasoft");

Person person3 = new Person(23, "leizhimin");

Person person4 = new Person(13, "sdg");

listPerson.add(person1);

listPerson.add(person2);

listPerson.add(person3);

ComparatorPerson ascComparator = new PersonComparator();

System.out.println("排序后集合为:");

// 利用Collections类静态工具方法对集合List进行排序

Collections.sort(listPerson, ascComparator);

System.out.println("\n降序排序测试:");

// 从升序排序对象产生一个反转(降序)的排序对象

ComparatorPerson descComparator = Collections

.reverseOrder(ascComparator);

System.out.println("利用反转后的排序接口对象对集合List排序并输出:");

Collections.sort(listPerson, descComparator);

outCollection(listPerson);

}

} 以上的例子中使用是对int类型的属性排序,对String属性排序可以用以下的方法

public int compareTo(Cat o) {return this.getName().compareTo(o.getName());}comparetTo()函数的使用说明:

如果 结果

0 ab

==0 a==b

=0 ab

Java如何通过所实现接口的方法进行排序是API内部的事情,Java这样处理排序目的就是对容器元素排序有一个统一的方式,以简化编程。

给个例子你自己看吧

java数组排列的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java数组排列组合、java数组排列的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-18,除非注明,否则均为首码项目网原创文章,转载请注明出处。