java数组的升序降序排列
发布网友
发布时间:2022-04-26 18:04
我来回答
共4个回答
热心网友
时间:2022-05-01 13:36
先来说你的问题,,你要实现写入文件是排序的结果,,那么你就应该先排序再写到文件,,而不是你现在这样接受一个写一个,,再说为什么文件里面是乱码,是因为你每次写入文件的时候写了一个字符‘0’,这个写到文件中打开后并不是你想看到的字符串“0”,所以打开是乱码,
帮你简单修改了代码
public static void main(String args[])
{
Scanner scanner=new Scanner(System.in);
try
{
int sum=0;// 总分
RandomAccessFile f=new RandomAccessFile("data.txt","rw");
System.out.print("请输入学生的个数: ");
int n=scanner.nextInt();
int s[]=new int[n];
for(int i=0;i<n;i++)
{
System.out.println("请输入第"+(i+1)+"个学生的成绩");
s[i]=scanner.nextInt();
sum+=s[i];
}
System.out.println("总分:"+sum);
Arrays.sort(s);
f.writeBytes(Arrays.toString(s));
f.close();
}
catch(IOException e)
{
System.err.println(e);
e.printStackTrace();
}
}
随机文件(RandomAccessFile)读写的一些方法,如writeInt writeChar 等,这些方法写到文件的数据都是二进制的,比如你writeInt(25),写到文件后打开是不会看到25的,这点一定要注意
热心网友
时间:2022-05-01 14:54
public class ScoreFile {
public static void main(String args[]) throws IOException {
int sum = 0;
System.out.println("请输入学生的个数");
int n = new Scanner(System.in).nextInt();
int s[] = new int[n];
for (int i = 0; i < n; i++) {
System.out.println("请输入第" + (i + 1) + "个学生的成绩");
s[i] = new Scanner(System.in).nextInt();
sum += s[i];
}
writeIntoFile(sortScore(s));
}
//数组排序
public static int[] sortScore(int[] score){
int temp = 0;
//大->小
for(int i=0;i<score.length-1;i++){
for(int j=i+1;j<score.length;j++){
if(score[j]>score[i]){
temp = score[i];
score[i] = score[j];
score[j] = temp;
}
}
}
return score;
}
//从大到小写入文件
public static void writeIntoFile(int[] score) throws IOException{
RandomAccessFile rf = new RandomAccessFile("d://11.txt", "rw");
//解决乱码
byte buffer[] = new byte [ 1024 ];
for(int i : sortScore(score)){
buffer = String.valueOf(i).getBytes();
rf.write(buffer);
rf.writeBytes("\r\n");
}
rf.close();
}
}
热心网友
时间:2022-05-01 16:29
别用数组,用List,先别写入文件,排完序再写。
public class test {
public static void main(String args[]) {
try {
int sum = 0;
RandomAccessFile f = new RandomAccessFile("data.txt", "rw");
System.out.println("请输入学生的个数");
int n = new Scanner(System.in).nextInt();
// int s[] = new int[n];
List<Integer> input= new ArrayList<Integer>();
int temp;
for (int i = 0; i < n; i++) {
System.out.println("请输入第" + (i + 1) + "个学生的成绩");
temp = new Scanner(System.in).nextInt();
input.add(temp);
}
Collections.sort(input);
//todo 写入文件
f.close();
} catch (IOException e) {
System.err.println(e);
e.printStackTrace();
}
}
}
热心网友
时间:2022-05-01 18:20
可以在写入文件之前 对数组进行排序,然后再写入文件、、
Java中对数组升序排列用Arrays.sort( )方法,那降序排列用什么方法?
Arrays.sort( )方法一个参数默认是升序排列,你要降序排列第一种方法调用重载的2个参数的Arrays.sort( T[]a,Comaparator c)才行,第二个参数需要自定义一个比较器类实现Comaparator接口,根据需要重新compare方法。第二种方法先进行升序排列,再调用Arrays的asList方法转换成数组,然后调用Collections的r...
java怎么让数组的数字从大到小排序?
例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。示例代码如下: public class Test { public static void main(String[] args) { int [] array = {12,3,12...
java数组sort()方法降序怎么排
java数组sort()方法降序方式:用Arrays类sort()对数组元素进行降序排列 import java.util.Arrays;class SortDemo { public static void main(String[] args){ int[] vec={0,15,-14,45,20,70};Arrays.sort(vec);System.out.println("/n");System.out.println("降序排列:");for (int i=vec...
java里升序和降序最简短的代码
直接调用jdk里面的方法Arrays.sort(args)方法。。。而且这个方法重载实现了多个参数,排序下标[N~M]位数字~倒叙,升序等等~
java冒泡升序排列
Java冒泡升序排列就是使用Java语言实现冒泡,将待排元素按照从小到大的顺序进行排列。冒泡排序的现象:较大的元素会“下沉”,较小的元素会“上浮”。冒泡排序的理解:第一次找到所有元素中最大的元素放在倒数第一位不再变动,第二次再找到剩余元素中最大的元素放到倒数第二位不再变动,依此类推,直到...
java中 Arrays.sort是升序 那什么是降序 是!Arrays.sort吗
只有一个升序的方法是这样的:java.util.Arrays.sort(数组名称)~~~如果你非得要降序,可以用这个方法转变一下:System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度) ;或者手写一个方法也好~~~
在java编程中如何对数组进行排序,并输出排序后的数组及原数组下标值
java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;public class ceshi {public static void main(String[] args) {int n = 5;int[] a = { 8, 5, 4...
JAva,数组从大到小排序,for循环里的条件倒过来怎么写 ,只要这个方法_百...
冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较。
java 关于数组的排序,不用sort方法完成升序排列
数组的排序,曾经是计算机编程的必学课程,不过现在“不要重新发明轮子”的理念深入人心,所以也就不强求大家都学算法,结构了。一个排序算法的例子 import java.util.Arrays;public class SortImpl { public static void main(String[] args) { int[] intArray = new int[] { 2, 4, 6, 8, 1...
java 输入字符串 输出升序和降序排序结果
100,333,4,55]System.out.println("Before sort : " + Arrays.toString(input));Arrays.sort(input);//Arrays.sort()方法是java提供的数组排序,可以直接使用 System.out.println("After sort : " + Arrays.toString(input));} public static void main(String...args){ sort();} } ...