黑马程序员技术交流社区

标题: 关于list的问题 [打印本页]

作者: 紫影    时间: 2015-5-4 14:27
标题: 关于list的问题
怎么交换list里的数据
作者: 唐泉银    时间: 2015-5-4 17:02
你说具体点啊
作者: IDhmpj    时间: 2015-5-4 21:24
不太确定交换的意思,但是List集合可以通过set方法,对指定位置的元素就行替换操作。
作者: 紫影    时间: 2015-5-5 09:42
唐泉银 发表于 2015-5-4 17:02
你说具体点啊

比如任意交换list里面的i位置和j位置的数据
作者: 胡家兵    时间: 2015-5-5 09:44
交换数据可以用两个iterator 找到对应位置,拿一中间变量中转一下互相赋值应该就行了
作者: 旺丶财    时间: 2015-5-5 11:27
刚写的一个交换list数据的方法:P
public class listTest {
        public static void main(String[] args) {
                //初始化一个list
                List list = new ArrayList();
                for (int i = 0; i < 10; i++) {
                        list.add(i,String.valueOf(i));
                }
                change(list,8,3);
        }
        //交换i和j的数据
        static String temp = null;
        public static List change(List list,int i,int j){
                if (i>j) {
                        int temp = 0;
                        temp = i;
                        i = j;
                        j = temp;
                }
                for (int k = 0; k < list.size(); k++) {
                        if (i==k) {
                                //把i上的元素放进临时变量
                                temp = (String) list.get(k);
                        }
                        if(j==k){
                                //把k的元素放进i
                                list.set(i, list.get(k));
                                //把临时变量的放进j
                                list.set(j, temp);
                                System.out.println(list);
                        }
                }
                return list;
        }
}
作者: 唐泉银    时间: 2015-5-5 11:30
紫影 发表于 2015-5-5 09:42
比如任意交换list里面的i位置和j位置的数据

通过get方法 获取相应位置的元素  然后再定义一个第三方变量  比如list集合里装的是数字
int temp=0;
  list.get(i)=temp;
list.get(i)=list.get(j);
list.get(j)=ltemp;
这不就交换了吗




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2