「java实现数据分组排序」java数组按列排序
今天给各位分享java实现数据分组排序的知识,其中也会对java数组按列排序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java怎么让数组的数字从大到小排序?
- 2、使用java程序实现:随机输入一串数字与字母,对这串字符进行分组排序
- 3、在java编程中如何对数组进行排序,并输出排序后的数组及原数组下标值
- 4、java实现数据分组问题
- 5、JAVA中对String数组根据字符长度进行分组并且排序
- 6、java 将第二列根据第一列分组实现从小到大排序
java怎么让数组的数字从大到小排序?
将数字从大到小排序的方法:
例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。
示例代码如下:
public class Test {
public static void main(String[] args) {
int [] array = {12,3,1254,235,435,236,25,34,23};
int temp;
for (int i = 0; i array.length; i++) {
for (int j = i+1; j array.length; j++) {
if (array[i] array[j]) {
temp = array[i];
array[i] = array[j];
array[j] = temp; // 两个数交换位置
}
}
}
for (int i = 0; i array.length; i++) {
System.out.print(array[i]+" ");
}
}
}
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。
Java 语言中提供的数组是用来存储固定大小的同类型元素。
你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99
扩展资料
Java中利用数组进行数字排序一般有4种方法:
1、选择排序是先将数组中的第一个数作为最大或最小数,然后通过循环比较交换最大数或最小数与一轮比较中第一个数位置进行排序。
2、冒泡排序也是先将数组中的第一个数作为最大或最小数,循环比较相邻两个数的大小,满足条件就互换位置,将最大数或最小数沉底。
3、快速排序法主要是运用Arrays类中的Arrays.sort方法()实现。
4、插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。
使用java程序实现:随机输入一串数字与字母,对这串字符进行分组排序
String str="9f3k2j5z031";
char[] ch=str.toCharArray();
char[] temp=new char[ch.length];
int count=0;
for(char c:ch){
if(c57){
count++;
}
}
System.arraycopy(ch, 0, temp, 0, ch.length);
Arrays.sort(temp);
System.out.println(count);
System.out.println(new String(temp));
int size=temp.length;
for(int i=0;isize;i++){
if((i/2)counti%2==0){
System.out.print(temp[size-1-(i/2)]);
}
else if((i/2)counti%2==1){
System.out.print(temp[(i/2)]);
}
else{
System.out.print(temp[i-count]); }
}
在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]) + ",");
}
}
}
运行结果如下:
java实现数据分组问题
HashMapKey,Value
key存储不重复行的数据
Value存储该数据的个数
JAVA中对String数组根据字符长度进行分组并且排序
好像也很复杂...
String[] str = {"1", "2", "3", "66", "54", "513", "323", "12", "121"};
MapInteger, ListString map = new HashMapInteger, ListString(); //按照长度区分数据
SetInteger indexSet = new HashSetInteger(); //长度去重
for (String string : str) {
int length = string.length();
ListString list = map.get(length);
if (list == null) {
list = new ArrayListString();
}
list.add(string);
Collections.sort(list); //默认排序
indexSet.add(length);
map.put(length,list);
}
ListInteger indexList = new ArrayListInteger();
for (Integer integer : indexSet){
indexList.add(integer);
}
Collections.sort(indexList); //长度默认排序
JSONArray jsonArray = new JSONArray();
for (Integer integer : indexList){
ListString valueList = map.get(integer);
String[] strings = valueList.toArray(new String[valueList.size()]);
jsonArray.add(strings);
}
System.out.println(jsonArray.toString());
java 将第二列根据第一列分组实现从小到大排序
public static void main(String[] args) {
// 初始化数据
ListListInteger table = new ArrayList();
ListInteger row1 = new ArrayList(2);
row1.add(0);
row1.add(2);
ListInteger row2 = new ArrayList(2);
row2.add(0);
row2.add(7);
ListInteger row3 = new ArrayList(2);
row3.add(0);
row3.add(1);
ListInteger row4 = new ArrayList(2);
row4.add(1);
row4.add(7);
ListInteger row5 = new ArrayList(2);
row5.add(1);
row5.add(5);
ListInteger row6 = new ArrayList(2);
row6.add(1);
row6.add(2);
ListInteger row7 = new ArrayList(2);
row7.add(1);
row7.add(4);
table.add(row1);
table.add(row2);
table.add(row3);
table.add(row4);
table.add(row5);
table.add(row6);
table.add(row7);
// 分组
MapInteger, ListListInteger groups = new HashMap(2);
for (ListInteger row : table) {
Integer firstCol = row.get(0);
ListListInteger groupItem = groups.getOrDefault(firstCol, new ArrayList());
// 添加到分组
groupItem.add(row);
groups.put(firstCol, groupItem);
}
// 分组内排序
for (ListListInteger groupItem : groups.values()) {
groupItem.sort((item1, item2) - {
return item1.get(1).compareTo(item2.get(1));
});
}
// 打印到控制台
for (Integer groupKey : groups.keySet()) {
ListListInteger groupItem = groups.get(groupKey);
for (ListInteger row : groupItem) {
for (Integer col : row) {
System.out.print(col + " ");
}
System.out.println();
}
}
}
java实现数据分组排序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java数组按列排序、java实现数据分组排序的信息别忘了在本站进行查找喔。