java的重复元素排序
2023-01-10阅读(180)
问:桶排序java怎么处理重复的元素
- 答:桶排序的核心思想是,将[0,1)分为n个大小相同的子区间,
* 上一个区间里的元素都比下一个区间里的元素小,然后对
* 所有区间里的元素排序,最后顺序输出所有区间里的元素,
* 达到对所有元素排序的目的。
* @author yuncong
*
*/
public class BucketSort {
public void sort(Double[] a) {
int n = a.length;
/**
* 创建链表(桶)集合并初始化,集合中的链表用于存放相应的元素
*/
int bucketNum = 10; // 桶数
LinkedList<LinkedList<Double>> buckets = new LinkedList<LinkedList<Double>>();
for(int i = 0; i < bucketNum; i++){
LinkedList<Double> bucket = new LinkedList<Double>();
buckets.add(bucket);
问:java排序一个数组(数组元素有重复的),并且记住新数组的元素在原数组中的位置,我需要能够运行的程序!
- 答:public class ArrayTest {
public static void main(String[] args) {
//java排序一个数组(数组元素有重复的),并且记住新数组的元素在原数组中的位置
int[] ary = {1,2,3,4,1,2};
int[] index = new int[ary.length];
for (int i = 0; i < index.length; i++) {
index[i] = i;
}
for (int i = 0; i < ary.length-1; i++) {
for (int j = i+1; j < ary.length; j++) {
if(ary[i]>ary[j]){
int temp = ary[i];
int p = index[i];
ary[i] = ary[j];
index[i] = index[j];
ary[j] = temp;
index[j] = p;
}
}
}
System.out.println(Arrays.toString(ary));
System.out.println(Arrays.toString(index));
}
}
问:java list 相同的字段排序
- 答:给你个思路吧,难到不难,不过做出来,没什么效率可言。纯粹是练手罢了。首先,遍历你的集合list1,找出ID字段值相等的对象,并将相等的字段值存入一个新的集合list2中。新集合就是你要的所有名字相同的字段值。嵌套for循环,遍历list2找出list1中ID值与其值相等的所有对象并保存到新集合list3中。name字段的排序同上。说起来太麻烦了。你好好想想把。
- 答:其实你user写一个toString方法,把需要排序的字段都加里,直接对toString出来的字符串排序应该能达到你要的效果
- 答:这样怎么不行了,题目还不太明白