在java编程中如何对数组进行排序,并输出排序后的数组及原数组下标值

作者&投稿:岑贝 (若有异议请与网页底部的电邮联系)
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, 6, 2, 1, 7, 9, 3 }; HashMap map = new HashMap(); for (int i = 0; i < a.length; i++) { map.put(a[i], i); // 将值和下标存入Map } // 排列 List list = new ArrayList(); Arrays.sort(a); // 升序排列 for (int i = 0; i < a.length; i++) { list.add(a[i]); } for (Object object : list) { System.out.print(object + ","); } System.out.println(); // 查找原始下标 for (int i = 0; i < n; i++) { System.out.print(map.get(a[i]) + ","); } } }

运行结果如下:

这个能解决你的问题
import java.util.Arrays;
public class ArraySortDemo
{
public static void main(String[] args )
{
int [] array = {-3,75,12,-3};//原数组
getSortIndex(array);
}
private static void getSortIndex(int[] array)
{
int [] array_copy =new int[array.length];//新数组 拷贝原数组 (如果不拷贝原数组在排序后被改变)
array_copy = Arrays.copyOf(array, array.length);

Arrays.sort(array);;//获取排序后的数组

for (int x=0;x<array_copy.length;x++)
{
for(int y=0;y<array.length;y++)
{
if(array_copy[x]==array[y])
{
System.out.print(y+1+"");
break;
}
}
}
}

}
效果:

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, 6, 2, 1, 7, 9, 3 };
HashMap map = new HashMap();
for (int i = 0; i < a.length; i++) {
map.put(a[i], i); // 将值和下标存入Map
}

// 排列
List list = new ArrayList();
Arrays.sort(a); // 升序排列
for (int i = 0; i < a.length; i++) {
list.add(a[i]);
}
for (Object object : list) {
System.out.print(object + ",");
}
System.out.println();

// 查找原始下标
for (int i = 0; i < n; i++) {
System.out.print(map.get(a[i]) + ",");
}

}

}

运行结果如下:



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, 6, 2, 1, 7, 9, 3 };
HashMap map = new HashMap();
for (int i = 0; i < a.length; i++) {
map.put(a[i], i); // 将值和下标存入Map
}
// 排列
List list = new ArrayList();
Arrays.sort(a); // 升序排列
for (int i = 0; i < a.length; i++) {
list.add(a[i]);
}
for (Object object : list) {
System.out.print(object + ",");
}
System.out.println();
// 查找原始下标
for (int i = 0; i < n; i++) {
System.out.print(map.get(a[i]) + ",");
}
}
}
运行结果如下:



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, 6, 2, 1, 7, 9, 3 };
HashMap map = new HashMap();
for (int i = 0; i < a.length; i++) {
map.put(a[i], i); // 将值和下标存入Map
}
// 排列
List list = new ArrayList();
Arrays.sort(a); // 升序排列
for (int i = 0; i < a.length; i++) {
list.add(a[i]);
}
for (Object object : list) {
System.out.print(object + ",");
}
System.out.println();
// 查找原始下标
for (int i = 0; i < n; i++) {
System.out.print(map.get(a[i]) + ",");
}
}
}
运行结果如下:



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, 6, 2, 1, 7, 9, 3 };
HashMap map = new HashMap();
for (int i = 0; i < a.length; i++) {
map.put(a[i], i); // 将值和下标存入Map
}
// 排列
List list = new ArrayList();
Arrays.sort(a); // 升序排列
for (int i = 0; i < a.length; i++) {
list.add(a[i]);
}
for (Object object : list) {
System.out.print(object + ",");
}
System.out.println();
// 查找原始下标
for (int i = 0; i < n; i++) {
System.out.print(map.get(a[i]) + ",");
}
}
}
运行结果如下:



int n=5;
int[] a={8,5,4,6,2,1,7,9,3};
HashMap map=new HashMap();
for(int i=0;i<a.length;i++)
{
map.put(a[i],i); //将值和下标存入Map
}

//排列
List list=new ArrayList();
Arrays.sort(a); //升序排列
for(int i=0;i<a.length;i++)
{
list.add(a[i]);
}
Collections.reverse(list); //逆序排列,变为降序
for(int i=0;i<list.size();i++)
{
a[i]=(Integer)list.get(i);
}

//查找原始下标
for(int i=0;i<n;i++)
{
System.out.println(map.get(a[i]));
}
这是我的思路


Java编程中如何在一个数值范围内生成一个伪
int start=5,end=15;\/\/比如5~15,随机范围数的长度是10(15减5)生成的0到10之间得数加上5就是5到15之间Random r=new Random();r.nextInt(end-start)+start;\/\/同理Math.ramdom()得到的是0到1之间的小数\/\/乘上整数就得到0到该数值之间的数,再加上整数就得到该区间的数\/\/5~15 15-5...

java编程中如何敲回车出现下一行
题主的意思是不是这样:循环:打印第i行内容 等待用户敲回车 打印第i+1行内容 。。。对应的程序是:Scanner sc = new Scanner(System.in);for (int i = 0; i < 5; i++) { System.out.println("This is line " + i); sc.nextLine();} 至于你说的warning,请给出具体的warnin...

java swing编程中如何点击按钮进入网页
打开一个浏览器、并浏览某页面,还是可以的 public static void main(String[] args) { \/\/判断当前系统是否支持Java AWT Desktop扩展 if(java.awt.Desktop.isDesktopSupported()){ try { \/\/创建一个URI实例 java.net.URI uri = java.net.URI.create("http:\/\/www.163.com\/");\/\/获取当前系统...

驼峰命名(Java编程中常用的命名规范)
三、如何使用驼峰命名 1.变量名 在Java编程中,变量名应该使用小驼峰命名规范。例如:firstName。2.方法名 在Java编程中,方法名应该使用小驼峰命名规范。例如:getFirstName()。3.类名 在Java编程中,类名应该使用大驼峰命名规范。例如:Person。4.常量名 在Java编程中,常量名应该全部使用大写字母,...

Java编程语言是最抢手的软件编程语言
我们都知道有许多类型的软件编程、Java、C$、PHP、JavaScript等等。你知道什么类型的软件编程是现在市面上最抢手的吗?毫无疑问,那就是Java编程语言。下面电脑培训为大家具体介绍Java编程语言。Java的市场占有率超过30亿的设备在Java上运行。根据统计数据显示,仅使用中的JavaCard就有50亿。超过900万的程序员选择了...

java swing 编程中,如何实现点击按钮弹出新的窗口???
import java.awt.Button;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;public class Demo { public static void main(String[] args) { Demo demo = new Demo();demo.run();} public void run() { JFrame frame = new JFrame("title1"...

java swing 编程中如何美化窗口
可以通过继承JPanel类,然后覆盖其中的paintComponet(Graphics g)函数在里面画你想画的图片就可以了

大学生几门主流编程语言优缺点解析
可以被嵌入任何现代处理器中几乎所有操作系 统都支持C\/C++,跨平台性非常好 劣势.学习难度大 且拥有大量极为复杂的功能交互方式容易造成资源浪费 3. Java 优势: 世界上使用范围最广的语言Java 需求旺盛不断发展Android应用开发的基石。 劣势: 占用太量内存并且启动时间较长运行缓慢学习曲线菲常陡峭 4.C# 优势: 全...

如何才能学好java编程?
那你可以自己及去想想,有什么理由能让你学成呢?毫无准备的人,毫无知情的人怎么可能成功转行呢?所以初学者还了解行业行情,多跟大牛请教一下,这是必须的。2.学得不系统,学的东西不是重点,做Java开发工作中,其实用的东西翻来覆去就是那么几样,Java的东西虽然多,但是并不是每个知识都学,有...

在Java中实现TCP协议编程中怎么传
在Java中实现TCP协议编程 ServerSocket:编写TCP网络服务程序,首先要用到java.net.ServerSocket类用以创建服务器Socket 构造方法:ServerSocket(int port):创建绑定到特定端口的服务器套接字 ServerSocket(int port, int backlog):利用指定的backlog(服务器忙时保持连接请求的等待客户数量),创建服务器套...

德惠市18864418519: java对一数组进行排序 -
卞施阿司: for(int p=str.length;p>0;p--){ switch(p-1){ case 0: vo.set7级=国际级; break; case 1: vo.set6级=国家级; break; case 2: vo.set5级=集团级; break; case 3: vo.set4级=省级; break; case 4: vo.set3级=市公司; break; case 5: vo.set2级=主管; break; case 6: vo.set1级=姓名; break; } } 是不是级别都是str[p]啊

德惠市18864418519: .请教:对一个给定的数组进行快速排序 (java) -
卞施阿司: void heapsort( int list[] , int index ) { int i , temp , j; for( i = index/2 ; i > 0 ; i-- ) { createheap( list , i , index); } for(j = index - 1 ; j >= 1; j--) { temp = list[ j+1 ]; list[ j+1] = list[1]; list[1] = temp; createheap( list , 1 , j ); } } void createheap( int list[] , int current , int ...

德惠市18864418519: java数组排序 -
卞施阿司: //原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,//则将其与第一位交换,e799bee5baa6e4b893e5b19e31333339653663使最大数置于第一位//第二次...

德惠市18864418519: java编程实现随机数组的快速排序 -
卞施阿司: java编程实现随机数组的快速排序步骤如下:1、打开Eclipse,新建一个Java工程,在此工程里新建一个Java类;2、在新建的类中声明一个产生随机数的Random变量,再声明一个10个长度的int型数组;3、将产生的随机数逐个放入到数组...

德惠市18864418519: 利用Java语言,实现数组的排序 -
卞施阿司: import java.util.Scanner; public class Test{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); System.out.println("请输入十个数:"); int arr[] = new int[11]; for (int i=0;i arr[i] = scanner.nextInt(); } for (int i=0;i for (...

德惠市18864418519: JAVA中给定一个数组,怎么把它里的数从小到大排列输出 -
卞施阿司: java数组操作提供了一个排序工具. String [] str = [1,2,3]; Arrays.sort(str); 还有不明白的可以查一下java API 搜索Arrays

德惠市18864418519: JAVA中有哪几种常用的排序方法?每个排序方法的实现思路是如何的?每个方法的思想是什么?我自学JAVA中,一直对数组的排序方法很迷茫,不知道解决... -
卞施阿司:[答案] 最主要的是冒泡排序、选择排序、插入排序以及快速排序 1、冒泡排序 冒泡排序是一个比较简单的排序方法.在待排序的数列基本有序的情况下排序速度较快.若要排序的数有n个,则需要n-1轮排序,第j轮排序中,从第一个数开始,相邻两数比较,若...

德惠市18864418519: java中如何对数组进行排序 -
卞施阿司: 选择排序,冒泡排序都行,就是思想问题,用最熟习的for循环就能够解决

德惠市18864418519: java中如何对数组和集合进行排序 -
卞施阿司: java中对集合排序,可以使用Collections.sort来进行排序,可以对中文、字母、数字进行排序,当比较的是对象时候,让该类实现comparable接口,示例如下:Collections.sort(dataMap, new Comparator>() { //排序接口实现方法 @Override ...

德惠市18864418519: java中的数组排序 -
卞施阿司: int[] arr = new int[set.size()];//定义一个数组arr长度为set的大小 set.toArray(arr);//将set集合转为数组 Arrays.sort(arr);//将数组arr进行排序 System.out.println(Arrays.toString(arr));//数组输出

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网