• 10.27作业 11次


    一、请简述集合框架。

    Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。

    集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。

    集合框架的类和接口均在java.util包中。

    任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。


    二、给定以下代码,请定义方法listTest()统计集合中指定元素出现的次数,如"a": 2,“b”: 2,"c" :1, “xxx”:0。

    package topic02;
    
    import java.util.LinkedList;
    import java.util.List;
    
    public class Demo02 {
        public static void main(String[] args) {
            List<String> list=new LinkedList<>();
            String a="a";
            String b="s";
            list.add("s");
            list.add("c");
            list.add("a");
            System.out.println("a:"+listTest(list,a));
            System.out.println("s:"+listTest(list,b));
    
    
        }
        public static int listTest(List<String> list,String s) {
            int count = 0;
            for (String i : list) {
                if (s.equals(i)){
                    count++;
            }
    
            }
            return count;
        }
    
    }
    

      


    三、定义一个方法,要求此方法把int数组转成存有相同元素的集合(集合里面的元素是Integer),并返回。

    package topic02;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Demo03 {
        public static void main(String[] args) {
            int[]  arr={2,8,9,24,54,66,71,77};
            List<Integer> list=arrChangeList(arr);
            System.out.println(list.toString());
        }
        public static List<Integer> arrChangeList(int[] arr){
            ArrayList<Integer> list =new ArrayList<>();
        for (Integer i:arr){
            list.add(i);
        }
            return list;
        }
    
    }
    

      

    四、定义一个集合,并把集合(集合里面的元素是Integer)转成存有相同元素的数组,并将结果输出在控制台。(可以使用Object[]数组类型接收转换的数组)

    package topic02;
    
    import java.util.ArrayList;
    
    public class Demo04 {
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<>();
            list.add(22);
            list.add(23);
            list.add(24);
            list.add(25);
            list.add(26);
            Object a[]=list.toArray();
            for (int i = 0; i <a.length ; i++) {
                System.out.println(a[i]+",");
            }
    
        }
    }
    

      

    五、定义一个方法listTest(ArrayList al, String s),要求使用contains()方法判断al集合里面是否包含s。

    package topic02;
    
    import java.util.ArrayList;
    
    public class Demo05 {
        public static void main(String[] args) {
            ArrayList<String> ar=new ArrayList<String>();
                ar.add("sun");
                ar.add("me");
                ar.add("ru");
            System.out.println(listTest(ar,"s"));
    
        }
        public  static boolean listTest(ArrayList<String> list,String s){
            if (s.contains(s)){
                return true;
            }
            return false;
        }
    
    }
    

      


    六、请简述迭代器的实现原理

    迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。

      从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧。这两种情况好像都能够解决问题。

      然而在前一种情况,容器承受了过多的功能,它不仅要负责自己“容器”内的元素维护(添加、删除等等),而且还要提供遍历自身的接口;而且由于遍历状态保存的问题,不能对同一个容器对象同时进行多个遍历。第二种方式倒是省事,却又将容器的内部细节暴露无遗。


    七、定义一个方法listTest(ArrayList al, Integer s),要求返回s在al里面第一次出现的索引,如果s没出现过返回-1。

    package topic02;
    
    import java.util.ArrayList;
    
    public class Demo07 {
        public static void main(String[] args) {
            ArrayList<Integer> list=new ArrayList<>();
            list.add(2);
            list.add(3);
            list.add(4);
            list.add(5);
            System.out.println(listTest(list,5));
        }
        public  static int listTest(ArrayList<Integer> list, Integer s){
            for (int i = 0; i <list.size() ; i++) {
                if (list.get(i).equals(s)){
                    return i;
                }
            }
            return -1;
        }
    }
    

      

  • 相关阅读:
    Python——Jupyter notebook如何更改默认目录
    Python——Jupyter notebook如何输出多行结果
    Matlab提示——未定义与 'double' 类型的输入参数相对应的函数 'resample'
    python读取mat文件:'utf-8' codec can't decode byte 0xb3 in position 38: invalid start byte
    CSDN涨到300一年了
    Windows——管理员方式打开命令提示符
    python——for循环
    java 集合 深度复制多种实现方式和使用注意事项
    Hibernate createQuery查询传递参数的两种方式
    DataTable reload和load区别
  • 原文地址:https://www.cnblogs.com/gygq/p/13887377.html
Copyright © 2020-2023  润新知