这位个人觉得应该是解释的最清楚的。这其中涉及到一个默认的前提: Arrays.sort(T[] a, Comparator<? super T> c) 你这里默认的是这个方法是升序排列的??所以根据自己定义的来如果 compare(1,2)=1, compare(2,3)=1。。 定义的是2比1小,3比2小。。所以再根据升序排列的话就是3 2 1是这样理解的吧
这位个人觉得应该是解释的最清楚的。这其中涉及到一个默认的前提: Arrays.sort(T[] a, Comparator<? super T> c) 你这里默认的是这个方法是升序排列的??所以根据自己定义的来如果 compare(1,2)=1, compare(2,3)=1。。 定义的是2比1小,3比2小。。所以再根据升序排列的话就是3 2 1是这样理解的吧 没错,就是这么理解的。Arrays.sort(T[] a, Comparator<? super T> c) 默认就是升序排列的(其中比较的大小的规则就是compare中规定好的)。
这位个人觉得应该是解释的最清楚的。这其中涉及到一个默认的前提: Arrays.sort(T[] a, Comparator<? super T> c) 你这里默认的是这个方法是升序排列的??所以根据自己定义的来如果 compare(1,2)=1, compare(2,3)=1。。 定义的是2比1小,3比2小。。所以再根据升序排列的话就是3 2 1是这样理解的吧 没错,就是这么理解的。Arrays.sort(T[] a, Comparator<? super T> c) 默认就是升序排列的(其中比较的大小的规则就是compare中规定好的)。OK,,默认就是升序那就完全能理解了多谢!在这点上还是C++的那个仿函数自定义比较大小比较好理解#include <iostream> #include <vector> #include <algorithm> using namespace std;class DescType { public: bool operator() (int a, int b) { return (a < b); } };int main() { vector<int> vint;
Arrays.sort(T[] a, Comparator<? super T> c) 你这里默认的是这个方法是升序排列的??所以根据自己定义的来如果
compare(1,2)=1, compare(2,3)=1。。
定义的是2比1小,3比2小。。所以再根据升序排列的话就是3 2 1是这样理解的吧
Arrays.sort(T[] a, Comparator<? super T> c) 你这里默认的是这个方法是升序排列的??所以根据自己定义的来如果
compare(1,2)=1, compare(2,3)=1。。
定义的是2比1小,3比2小。。所以再根据升序排列的话就是3 2 1是这样理解的吧
没错,就是这么理解的。Arrays.sort(T[] a, Comparator<? super T> c) 默认就是升序排列的(其中比较的大小的规则就是compare中规定好的)。
Arrays.sort(T[] a, Comparator<? super T> c) 你这里默认的是这个方法是升序排列的??所以根据自己定义的来如果
compare(1,2)=1, compare(2,3)=1。。
定义的是2比1小,3比2小。。所以再根据升序排列的话就是3 2 1是这样理解的吧
没错,就是这么理解的。Arrays.sort(T[] a, Comparator<? super T> c) 默认就是升序排列的(其中比较的大小的规则就是compare中规定好的)。OK,,默认就是升序那就完全能理解了多谢!在这点上还是C++的那个仿函数自定义比较大小比较好理解#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;class DescType
{
public:
bool operator() (int a, int b)
{
return (a < b);
}
};int main()
{
vector<int> vint;
vint.push_back(1);
vint.push_back(2);
vint.push_back(3);
sort(vint.begin(), vint.end(), DescType() );
for (vector<int>::iterator iter = vint.begin(); iter != vint.end(); iter++)
cout << *iter << " ";
return 0;
}