黑马程序员技术交流社区

标题: 第16天作业 [打印本页]

作者: 孙阳超    时间: 2016-9-16 23:55
标题: 第16天作业
1.分析以下需求,并用代码实现:
        (1)定义一个方法swap()传入集合和两个角标使集合中元素交换位置()
        (2)思路
                a.定义一个临时变量, 记住其中一个元素
                b.用第一个位置存放第二个位置上的元素
                c.用第二个位置存放临时变量记住的元素

public static<T> List<T> swap(List<T> list,int indax,int end){
                //获取list的知道索引的元素
                T t = list.get(indax);
                //把indax的元素和end索引的元素进行交换
                list.set(indax, list.get(end));
                //把end的索引的元素和t元素交换
                list.set(end, t);
                //返回集合
                 return list;
        }


2.分析以下需求,并用代码实现:
        (1)有如下代码:
                public static void main(String[] args) {
                        List<String> list = new ArrayList<>();
                        list.add("b");
                        list.add("f");
                        list.add("e");
                        list.add("c");
                        list.add("a");
                        list.add("d");
                        sort(list);
                        System.out.println(list);        // a, b, c, d, e, f
                }
        (2)要求对集合中添加的元素排序
        public static void sort(List<String> list) {
                //遍历集合
                for (int i = 0; i < list.size() - 1; i++) {
                        for (int j = 0 ; j < list.size()- 1 - i; j++) {
                                //把集合中的元素抽出来
                                String a = list.get(j);
                                String b = list.get(j+1 );
                                //用charAt方法把字符串转换为char类型,判断字符的大小,用冒泡排序
                                if (a.charAt(0) > b.charAt(0)) {
                                        String temp = list.get(j);
                                        list.set(j, list.get(j + 1));
                                        list.set(j + 1, temp);
                                }
                        }
                }
        }
       
3.分析以下需求,并用代码实现:
        (1)有如下代码:
                List<String> list = new ArrayList<>();
               
                list.add("a");
                list.add("a");
                list.add("a");
                list.add("b");
                list.add("b");
                list.add("c");
                list.add("d");
                list.add("d");
                list.add("d");
                list.add("d");
                list.add("d");
               
                System.out.println(frequency(list, "a"));        // 3
                System.out.println(frequency(list, "b"));        // 2
                System.out.println(frequency(list, "c"));        // 1
                System.out.println(frequency(list, "d"));        // 5
                System.out.println(frequency(list, "xxx"));        // 0
        (2)定义方法统计集合中指定元素出现的次数,如"a" 3,"b" 2,"c" 1

        public static int  frequency(List<String> list,String str){
                //定义一个计时器
                int a = 0;
                //增强for循环
                for (String string : list) {
                        //判断是否和输入的那个元素一样,如果一样就a++
                        if(str.equals(string)){
                                a++;
                        }
                }
                System.out.print(str+ " "+"出现的次数是");
                //返回a
                return a;
        }
       
4.分析以下需求,并用代码实现:
        (1)编写一个泛形方法,实现指定位置数组元素的交换
        public static <T> void swap(List<T> list, int indax, int end) {
                //获取list的知道索引的元素
                T t = list.get(indax);
                //把indax的元素和end索引的元素进行交换
                list.set(indax, list.get(end));
                //把end的索引的元素和t元素交换
                list.set(end, t);
                System.out.println(list);
        }
        (2)编写一个泛形方法,接收一个任意数组,并反转数组中的所有元素
        public static <T> void swap(T[] arr) {
                //将数组进行交换
                for (int i = 0; i < arr.length / 2; i++) {
                        T temp = arr[i];
                        arr[i] = arr[arr.length - 1 - i];
                        arr[arr.length - 1 - i] = temp;
                }
        }


这是我自己写的,如果有要修改的请大家告诉我!!!!!!!!
作者: 9527个人    时间: 2016-9-17 14:15
怎么用技术分换黑马币呀?
作者: 孙阳超    时间: 2016-9-18 22:29
9527个人 发表于 2016-9-17 14:15
怎么用技术分换黑马币呀?

在设置那里,那里有个积分,在积分那里换
作者: 9527个人    时间: 2016-9-18 22:40
孙阳超 发表于 2016-9-18 22:29
在设置那里,那里有个积分,在积分那里换

谢谢{:3_53:}
作者: zhaokun    时间: 2016-9-18 22:43
表示看不懂{:2_41:}
作者: 闲时弄月    时间: 2017-4-11 09:48
还可以,看看和我的思路区别




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