A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package Day18;

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

public class Demo7 {
public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("b");
        list1.add("f");
        list1.add("e");
        list1.add("c");
        list1.add("a");
        list1.add("d");
}
public static<T> void paixu(List<T> list){
       
        for (int i = 0; i < list.size(); i++) {
               
        }
}
}

9 个回复

倒序浏览
给你点提示,我是把他转换成字符类型然后进行的处理list.get(i).charAt(0);

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 赞一个!

查看全部评分

回复 使用道具 举报
        public static void paixu(List<String> list) {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < list.size(); i++) {
                        for (int j = i; j < list.size(); j++) {
                                if ((list.get(i)).compareTo(list.get(j)) > 0) {
                                        sb.delete(0, sb.length());
                                        sb.append(list.get(i));
                                        list.set(i, list.get(j));
                                        list.set(j, sb.toString());
                                }
                        }
                }
        }
这样可以不!

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 赞一个!

查看全部评分

回复 使用道具 举报
来个简单的。 Set集合是有唯一的,直接可以把List集合转为Set集合就可以排序了(遍历出来再存进去),我开始用了HashSet来存,结果没变,我觉得是没有重写hashCode()和Equels方法所以不带有排序性。 然而TreeSet是树杈结构,本身自带排序(HashSet本身利用hash值来存储,值只能判断是否重复,如果要加上排序得在初始化时传入 Comparator 比较麻烦) ,而且TreeSet必须存储带有顺序的元素,String本身是带有排序元素的,因为自身有CompareTo方法,可以看下API。  代码如下:

public static Set<String> sort(List<String> list){
                Set<String> set=new TreeSet<String>();
                for(String str:list){
                        set.add(str);
                }
                return set;
        }

另外要注意的是 集合不是数组,你那个for遍历只能用于数组,你如果list[i]编译器肯定不会通过的。下面是主函数:
List<String> list=new ArrayList();
       
                list.add("d");
                list.add("c");
                list.add("b");
                list.add("a");
                Set<String>  set=sort(list);
                Iterator it=set.iterator();
                while(it.hasNext()){
                        System.out.println(it.next());
                }

如果你一定要用for循环,可以用高级For,比如for(String str:list) or for(String str :set)

希望可以帮到你

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 赞一个!

查看全部评分

回复 使用道具 举报
我也被这个题难住了,头都大了
回复 使用道具 举报
Teale 发表于 2014-5-30 00:56
来个简单的。 Set集合是有唯一的,直接可以把List集合转为Set集合就可以排序了(遍历出来再存进去),我开 ...

Collections.sort()更简单....
回复 使用道具 举报
集合转换为数组在排序,可以定义一个方法如
public static void sort(List<Integer> li){
//1集合转换为数组
//2排序就可以
}
回复 使用道具 举报
本帖最后由 饥渴ing 于 2014-5-30 19:44 编辑

public static <T extends Comparable<? super T>> void paixu(List<T> list) {
                T temp;//临时存放元素内容
                for (int i = 0; i < list.size(); i++) {
                        for (int j = i; j < list.size(); j++) {
                                if ((list.get(i)).compareTo(list.get(j)) > 0) {//两个元素进行比较.
                                        //交换
                                        temp = list.get(i);
                                        list.set(i, list.get(j));
                                        list.set(j, temp);
                                }
                        }
                }
        }
修改了下这样就可以了
T必须要实现Comparable这个接口,因为元素要具备比较性才能进行排序
然后使用冒泡排序依次进行比较.交换位置

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 赞一个!

查看全部评分

回复 使用道具 举报
学习下。。。
回复 使用道具 举报
学习一下下。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马