当前位置: 代码迷 >> Java面试 >> 定义一个ArrayList集合,然后将集合中的元素进行排序,该怎么解决
  详细解决方案

定义一个ArrayList集合,然后将集合中的元素进行排序,该怎么解决

热度:81   发布时间:2016-04-17 19:18:57.0
定义一个ArrayList集合,然后将集合中的元素进行排序
定义一个ArrayList集合,然后将集合中的元素进行排序(排序方法使用冒泡)


package 课后作业;

import java.awt.List;
import java.util.ArrayList;

import com.sun.java_cup.internal.internal_error;
import com.sun.java_cup.internal.parse_action;

public class demo1 {
public static void main(String[] args) {
ArrayList lst=new ArrayList();
lst.add(4);
lst.add(8);
lst.add(6);
lst.add(7);
for (int i = 0; i < lst.size(); i++) 
{
for (int j = i+1; j < lst.size(); j++) 
{

if((Integer)lst.get(i)>(Integer)lst.get(j))
{
int c=(Integer)lst.get(i);
(Integer)lst.get(i)=(Integer)lst.get(j);//这段报错了不能交换
(Integer)lst.get(j)=c;//这段报错了不能交换 怎么改啊?
}
}

}
for (int i = 0; i < lst.size(); i++) {
System.out.println(lst.get(i));
}
}

}


------解决方案--------------------
列表不是你这么操作的

Java code
    public static void main(String[] args) {        // TODO Auto-generated method stub        ArrayList lst=new ArrayList();        lst.add(4);        lst.add(8);        lst.add(6);        lst.add(7);        for (int i = 0; i < lst.size(); i++) {            for (int j = i+1; j < lst.size(); j++) {                if((Integer)lst.get(i)>(Integer)lst.get(j)) {                    Integer c = (Integer)lst.get(i);                    Integer c1 = (Integer) lst.get(j);                    lst.remove(i);                    lst.add(i, c1);                    lst.remove(j);                    lst.add(j, c);                }            }        }        for (int i = 0; i < lst.size(); i++) {            System.out.println(lst.get(i));        }        }
------解决方案--------------------
不是交换,是赋值
int c=(Integer)lst.get(i);你这句赋值就没问题啊
下面的Integer)lst.get(i)=(Integer)lst.get(j);哪有这样乱七八糟赋值的
  相关解决方案