Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按元素对数组排序_Java_Sorting_Arraylist_Comparator - Fatal编程技术网

Java 按元素对数组排序

Java 按元素对数组排序,java,sorting,arraylist,comparator,Java,Sorting,Arraylist,Comparator,我有三个字符串数组 A: [-22, -3, 2.2, a] B: [-22, -3, 2.2, b] C: [-22, 0, 2.2] 排序后,我想得到这个序列 C: [-22, 0, 2.2] A: [-22, -3, 2.2, a] B: [-22, -3, 2.2, b] 一对数组之间的比较是在数组中的第一个元素上进行的。如果元素相同,则使用第二个元素,依此类推 必须使用什么比较器 #include <string> #include <vector> #in

我有三个
字符串
数组

A: [-22, -3, 2.2, a]
B: [-22, -3, 2.2, b]
C: [-22, 0, 2.2]
排序后,我想得到这个序列

C: [-22, 0, 2.2]
A: [-22, -3, 2.2, a]
B: [-22, -3, 2.2, b]
一对数组之间的比较是在数组中的第一个元素上进行的。如果元素相同,则使用第二个元素,依此类推

必须使用什么比较器

#include <string>
#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

struct values{
    vector<string> ve;
}array[100];

bool comp(values a, values b){
    if(a.ve.size()<b.ve.size() || a.ve<b.ve)
        return true;
    return false;
}

int main(){

    int number, size;
    string str;
    cin>>number; //Number of string arrays
    for(int i=0;i<number;i++){
        cin>>size; // Number of element in each array
        for(int j= 0;j<size;j++){
            cin>>str;
            array[i].ve.push_back(str);
        }

    }
    sort(array, array+number, comp);

    for(int i=0;i<number;i++){
        for(int j= 0;j<array[i].ve.size();j++){
            cout<<array[i].ve[j]<<" ";
        }
        cout<<"\n";

    }
    return 0;
}
输出:

-22 0 2.2 
-22 -3 2.2 a 
-22 -3 2.2 b

这些阵列的类型是什么?什么是
a
b
?您想考虑
a
b
的ascii值?什么是
a
b
?到khelwood字符串数组;对于WasiAhmad,在我从B(-22)中得到第一个值之后,我从A(-22)中得到第一个值,如果它们相等->比较A(-3)中的第二个值和B(-3)中的第二个值,等等@Mohsen_Fatemi,这些都是字符串值。你为什么用c++代码回答java问题?哎呀,我没有注意到java标记。
-22 0 2.2 
-22 -3 2.2 a 
-22 -3 2.2 b