Java数组问题<现在有一组无序字符序列: a、c、u、b、e、p、f、z.按字母顺序进行升序排列。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java数组问题<现在有一组无序字符序列: a、c、u、b、e、p、f、z.按字母顺序进行升序排列。相关的知识,希望对你有一定的参考价值。

现在有一组无序字符序列: a、c、u、b、e、p、f、z.按字母顺序进行升序排列,接着在此字符序列中插入一个新的字符(M),并且要求他的下标为<6>.
要求插入后字符序列仍保持有序.并且从插入位置开始的元素均后移一个位置.!

这是原数组及升序后的数组:

public class HwNo02

public static void main(String[] args)
String[] somemum = new String[] "a", "c", "u", "b", "e", "p", "z",
"f" ; // 原数组为 8 个元素
int i = 0;//
System.out.print("原数组为: ");
for (i = 0; i < somemum.length; i++)
System.out.print(somemum[i] + " ");// 遍历打印原数组

System.out.print("\n" + "升序后为: ");
Arrays.sort(somemum);
for (i = 0; i < somemum.length; i++) // 遍历打印升序数组
System.out.print(somemum[i] + " ");


(请问接下来该怎么做)

public static void main(String[] args)
// a、c、u、b、e、p、f、z
String[] arr = new String[]"a","c","u","b","e","p","f","z";
System.out.println(Arrays.toString(arr));
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
String[] arr2 = new String[9];
System.arraycopy(arr, 0, arr2, 0, 6);
arr2[6] = "m";
System.arraycopy(arr,6, arr2, 7, 2);
System.out.println(Arrays.toString(arr2));
追问

你的代码达到我的效果了!
但是我新手看不懂
求给我注释一下好吗 谢谢
采纳你了

追答

Arrays.toString(arr)//使用数组的工具类Arrays的toString()方法输出数组的内容
System.arraycopy(参数1,参数2,参数3,参数4,参数5)//是一个数组复制的方法
参数1:要复制的数组,参数2:要复制数组开始下标,
参数3:复制后新数组,参数4:新数组开始下表,
参数5:复制的长度
arr2[6]="m";这是赋值语句,用于给arr2数组第7个元素赋值
建议看一下工具api,在操作数组的时候一定要考虑数组越界问题

参考技术A public class HwNo02

public static void main(String[] args)
String[] somemum = new String[] "a", "c", "u", "b", "e", "p", "z",
"f" ; // 原数组为 8 个元素
int i = 0;//
System.out.print("原数组为: ");
for (i = 0; i < somemum.length; i++)
System.out.print(somemum[i] + " ");// 遍历打印原数组

System.out.print("\n" + "升序后为: ");
Arrays.sort(somemum);
for (i = 0; i < somemum.length; i++) // 遍历打印升序数组
System.out.print(somemum[i] + " ");

somemum.add(6,"M");add(int index, E element)

将指定的元素插入此列表中的指定位置
导包就不说了 ArrayList这个包 不知道用不用导 我忘了 你最好下载一个API看看方法 里面都能查到
参考技术B pphkbdyd 5 2 f к· ㏄ lzym
lvvulg
aiwx
vhbvksw
sqyq
aqc

JS实现数组排序的方法

前言

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列,当然排序也是算法中的一种,javascript内置的sort函数是多种排序算法的集合,数组在原数组上进行排序。JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。

I.简单排序

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>简单排序</title>
    </head>
    <body>
        <script type="text/javascript">
            var numbers=[4,6,8,0,1,2,3,7,9];
            numbers.sort();//调用数组内置排序方法
            console.log(numbers);//0,1,2,3,4,6,7,8,9
            numbers.reverse();//将数组进行反转
            console.log(numbers);//9,8,7,6,4,3,2,1,0
        </script>
    </body>
</html>

技术图片

 虽说我们实现了排序,也达到了我们想要的结果,但是这种排序有问题,我们看下下面这个例子

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>简单排序</title>
    </head>
    <body>
        <script type="text/javascript">
            var numbers=[4,6,8,0,1,2,3,7,9];
            numbers.sort();//调用数组内置排序方法
            console.log(numbers);//0,1,2,3,4,6,7,8,9
            numbers.reverse();//将数组进行反转
            console.log(numbers);//9,8,7,6,4,3,2,1,0
            
            var num=[0,1,5,10,15];
            num.sort();//调用数组内置的排序方法
            console.log(num);//0,1,10,15,5
            num.reverse();//调用数组内置的反转方法
            console.log(num);//5,15,10,1,0
        </script>
    </body>
</html>

技术图片

 为什么呢?且听我一一道来,本身sort()这个方法是没有问题的,在默认情况下,sort()方法按升序排列数组项,即最小的值位于最前面,最大的值排在最后面。为了实现升序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串。为了更好的实现排序,sort()方法可以接收一个比较函数作为参数,以便我们指定哪个值位于那个值的前面,我们看下下面的案例。

II.简单数组自定义排序

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>简单数组自定义排序</title>
    </head>
    <body>
        <script type="text/javascript">
            var number=[0,1,10,15,5];
            function arrAsc(a,b)    //实现数组升序的方法
                if(a>b)
                    return 1;
                else if(a<b)
                    return -1;
                else
                    return 0;
                
            
            number.sort(arrAsc);//调用数组升序的方法
            console.log(number);//0.1,5,10,15
            function arrDesc(a,b)    //实现数组降序的方法
                if(a>b)
                    return -1;
                else if(a<b)
                    return 1;
                else
                    return 0;
                
            
            number.sort(arrDesc);//调用数组降序的方法
            console.log(number);//15,10,5,1,0
            
        </script>
    </body>
</html>

技术图片

在这里我们定义了一个compare比较函数,当a>b的结果为整数时则为升序当a>b的结果为负数时则为降序

III.简单对象自定义属性排序

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>简单对象自定义属性排序</title>
    </head>
    <body>
        <script type="text/javascript">
            var friuts=[
                
                    name:apple,
                    price:18.5,
                    count:10
                ,
                
                    name:pear,
                    price:1.5,
                    count:5,
                ,
                
                    name:banana,
                    price:20.5,
                    count:20
                ,
            ]
            console.log(JSON.stringify(friuts));//未排序前
            //按价格升序排序
            friuts.sort(function(x,y)
                return x.price-y.price;
            );
            console.log(JSON.stringify(friuts));
            //按名称排序
            friuts.sort(function(x,y)
                if(x.name>y.name)
                    return 1;
                else if(x.name<y.name)
                    return -1;
                else
                    return 0;
                
            );
            console.log(JSON.stringify(friuts));
        </script>
    </body>
</html>

技术图片

IV.通用的排序方法

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>通用的排序方法</title>
    </head>
    <body>
        <script type="text/javascript">
            var friuts=[
                
                    name:apple,
                    price:18.5,
                    count:10
                ,
                
                    name:pear,
                    price:1.5,
                    count:5,
                ,
                
                    name:banana,
                    price:20.5,
                    count:20
                ,
            ]
            var sortExp=function(key,isAsc)
                return function(x,y)
                    if(isNaN(key))
                        if(x[key]>y[key])
                            return 1*(isAsc?1:-1);
                            
                        else if(x[key]<y[key])
                            return -1*(isAsc?1:-1);
                        else
                            return 0;
                        
                        
                    else
                        return (x[key]-y[key])*(isAsc?1:-1)
                    
                
            
            //价格升序
            friuts.sort(sortExp(price,true));
            console.log(JSON.stringify(friuts));
            //价格降序
            friuts.sort(sortExp(price,false));
            console.log(JSON.stringify(friuts));
            //名称升序
            friuts.sort(sortExp(name,true));
            console.log(JSON.stringify(friuts));
            //名称降序
            friuts.sort(sortExp(name,false));
            console.log(JSON.stringify(friuts));
            //数量升序
            friuts.sort(sortExp(count,true));
            console.log(JSON.stringify(friuts));
            //数量降序
            friuts.sort(sortExp(count,false));
            console.log(JSON.stringify(friuts));
            
            
        </script>
    </body>
</html>

技术图片

以上是关于Java数组问题<现在有一组无序字符序列: a、c、u、b、e、p、f、z.按字母顺序进行升序排列。的主要内容,如果未能解决你的问题,请参考以下文章

java中一组无序数,找出相等值的算法

C++有一串01字符序列,如何把它们转化为对应的二进制位的形式写入文件

Java 随机分组

这样的插入排序

脑洞题目 - 改自从一组无序数组中找不存在的最小正整数

JAVA 集合