我需要对两个ArrayList
进行排序。例如,给定
结果需要是4 5 6 8 9 9 11.
我已经有了这个:
public static void main(String[] args) {
ArrayList<Integer> a = new ArrayList<Integer>();
a.add(1);
a.add(4);
a.add(9);
a.add(16);
ArrayList<Integer> b = new ArrayList<Integer>();
b.add(4);
b.add(7);
b.add(9);
b.add(9);
b.add(11);
ArrayList<Integer> c = new ArrayList<Integer>();
c.addAll(a);
c.addAll(b);
int smallest = c.get(0);
for (int i = 0; i < c.size(); i++) {
if (c.get(i) < smallest) {
smallest = c.get(i);
}
}
答案 0 :(得分:1)
Collections.sort(arrayList);
适用于您的案例Collections.sort( c );
我在这里遗漏了什么吗?
答案 1 :(得分:0)
实际上,您使用的代码如下:
int smallest = c.get(0);
for (int i = 0; i < c.size(); i++) {
if (c.get(i) < smallest) {
smallest = c.get(i);
}
}
它填充最小的元素而不是对列表进行排序。
您可以更改for循环,
来自
for (int i = 0; i < c.size(); i++) {
if (c.get(i) < smallest) {
smallest = c.get(i);
}
}
到
System.out.println("Before sorting-->" +c );
for (int i = 0; i < c.size()-1; i++) {
for(int j=i+1; j <c.size();j++)
{
if(c.get(i) > c.get(j))
{
int temp = c.get(j);
c.set(j, c.get(i));
c.set(i, temp);
}
}
}
System.out.println("After sorting-->" +c );
控制台输出:
Before sorting-->[1, 4, 9, 16, 4, 7, 9, 9, 11]
After sorting-->[1, 4, 4, 7, 9, 9, 9, 11, 16]
OR
您可以使用 Collections.sort(List<Integer>)
对列表进行排序。
像,
List<Integer> xList = Arrays.asList(4,6,9,9);
List<Integer> yList = Arrays.asList(4,5,8,11);
List<Integer> result = new ArrayList<Integer>();
result.addAll(xList);
result.addAll(yList);
System.out.println("Before sorting-->" +result );
Collections.sort(result);
System.out.println("After sorting-->" +result );
在控制台输出==&gt;
Before sorting-->[4, 6, 9, 9, 4, 5, 8, 11]
After sorting-->[4, 4, 5, 6, 8, 9, 9, 11]