天天看点

第十四单元 集合

一、填空题

1.包的命名规范是(包名全部小写).

2 权限访问控制符中,访问权限最小的是(private)。

3 权限访问控制符中,访问权限最大的是(public)。

 修饰的属性或方法只可以被本类、本包内的类使用,应选择的修饰符是(private)。

4 面向对象中,继承需要使用到的关键字是(extends)。

5、List接口的特点是(有序列表)。

6、ArrayList和LinkedList的区别是(ArrayList底层是数组,LinkedList底层是链表)。

7、关于ArrayList类的get方法的功能是(通过下标获取元素)。

8、对ArrayList进行删除元素时,需要的方法是(remove())。

9、如果要获得集合的元素个数,需要调用的方法是(size())。

10、List接口的常用实现类包括(ArrayList,LinkedList)。

11.Collection的常用子接口包括(List,Set)。

12 Collection的父接口是(Iterable)。

13基本数据类型int的封装类是(Integer)。

14、能够去除字符串首尾空格的方法是(trim()方法)。

15、能够实现截取字符串操作的方法是(substring()方法)。

16、Math类中的哪个方法可以取绝对值?(abs()方法).

17、Math类中的哪个方法可以求四舍五入?_(round()方法)

18 .数组是一种引用数据类型

19int类型的数组默认值是(0)。

20.若有如下程序段程序的执行结果是(1)

int index=1; int foo[]=new int[3]; int bar=foo[index];int baz=bar+index;

21.设有下列数组定义语句: int a[][]= {{1, 2}, {3}};则此a[1][0]的值为(3)。

22、Java基本类型中字符类型是(char)

23、换行的转义字符的是(\n)

24、单行注释的语法是(\\)

25、Java中标识符的要求包括(首字母小写,不能和关键字重名,驼峰式命名,见名知意)

26、java中byte数据类型的取值范围是(-128~127)

27. Collection是( 接口 )(接口/抽象类/类/最终类)

28. 对ArrayList进行删除元素时,调用的方法是 remove()

29. List接口的常用实现类包括: :(3种)

30. 基本数据类型int的包装类是(  Integer    )类。

31. 基本数据类型double的包装类是(   Double   )类。

32. (  LinkedList  )更适合增加删除操作频繁的场合

33. ArrayList类中,如果要修改元素的值,调用的方法是 set()

34. List(  实现 )了Collection接口。(继承/实现)

二.代码阅读题

1、若有如下接口A的定义,下列哪些类下确实现了该接口

interface A {  

void method1(int i);

 void method2(int j);

}

A  class B { void method1(int i ) { } void method2(int j ) { } }

B  class B implements A{ public void method1(int x ) { } public void method2(int y ) { } }

C  class B implements A { void method1(int i ) { } void method2(int j ) { } }

D  class B implements A{ void method1( ) { } void method2( ) { } }

2、求字符串的长度的方法是::

  正确答案:A

A  length()

B  size()

C  length

D  size

3、能够实现截取字符串操作的方法是::

正确答案:A

A  substring()

B  substr()

C  indexof()

D  equals()

5、输出结果为(e java)

String str =“I like java”;

System.out.println(str.substring(5));:

从5开始到结束(从0开始数,数到5)

三 判断题

1.List接口的特点是无次序,可重复  ✖

2.ArrayList和LinkedList在删除和新增操作(remove/add)中,ArrayList更占优势 ✖

3.List和Set都是Collection的子接口 ✔

4.ArrayList list = new ArrayList();在编译时会报错 ✖

5.用迭代器遍历集合中的元素,判断集合中是否仍有元素可以迭代,可以用hasNext  ✔

6.在进行插入操作时,如果插入的是集合的头部,ArrayList性能和LinkedList性能差不多。  ✖

7.泛型的优点是不用向下强制类型转换 ✔

四 单选题

1.如果要获得集合的元素个数,需要调用的方法是(  C    )

A length()

B add()

C size()

D remove()

2.基本数据类型Long的包装类是(  C    )类。

A Integer

B String

C Long

D Float

3.输出结果为(  C   )

String str ="Collection";

System.out.println(str.substring(1));

A Coll

B Collection

C ollection

D ollec

五 多选题

1 欲构造List接口类型的一个实例,此实例使用ArrayList类实现,下列哪个方法是错误的::(CD)

A List myList=new ArrayList();

B ArrayList myList=new List();

C List myList=new Object();

D List myList=new List();

2. public  class  Demo{//我严重怀疑这些程序都是直接在word手打的,为啥每次的双引号都是中文的...

    public  static void main (String[]  args){

          List al=new ArrayList();

          a1.add(“A”);

          a1.add(“B”);

          a1.add(“B”);

          a1.add(“C”);

          System.out.println (al);

    }

}

上述程序执行后的输出不是哪项::(ABD)

A [A,B,C]

B [A,B,C,C]

C [A,B,B,C]

D [B,A,C,B]

六.技能题

1. 创建一个学生类,属性:姓名,年龄,班级

创建初始化学生信息的构造方法。

封装学生属性信息,定义show()方法,输出学生的详细信息。

创建3个Student对象,并将创建的3个学生对象依次添加到ArrayList对象中

遍历输出学生的详细信息。

查询所有年龄大于18岁的学生姓名,年龄

查询是否存在名字叫:张三的学生,如果存在则删除,没 有存在则添加一个姓名叫:张三的学生。

Student.java

package com.xiongluoluo;

public class Student {

    private String stuName;

    private int stuAge;

    private String stuClass;

    public Student(){}

    public Student(String stuName,int stuAge,String stuClass){

        this.stuName = stuName;

        this.stuAge = stuAge;

        this.stuClass = stuClass;

    }

    public void show(){

        System.out.println("姓名:"+stuName+"\t"+"年龄:"+stuAge+"\t"+"班级:"+stuClass);

    }

    public void setStuName(String stuName){

        this.stuName = stuName;

    }

    public String getStuName(){

        return stuName;

    }

    public void setStuAge(int stuAge){

        this.stuAge = stuAge;

    }

    public int getStuAge(){

        return stuAge;

    }

    public void setStuClass(String stuClass){

        this.stuClass = stuClass;

    }

    public String getStuClass(){

        return stuClass;

    }

}

MyDemo.java

@Test

public void test1(){

    List<Student> list = new ArrayList<Student>();

    Student student1 = new Student("熊落落",18,"软件工程1班");

    Student student2 = new Student("杨梦梦",22,"软件工程2班");

    Student student3 = new Student("李鹏鹏",26,"软件工程3班");

    list.add(student1);

    list.add(student2);

    list.add(student3);

    System.out.println("*******遍历输出学生的全部信息*********");

    for(Student student : list){

        student.show();

    }

    System.out.println("*******年龄大于十八岁的学生信息*********");

    for(Student student : list){

        if(student.getStuAge()>18){

            student.show();

        }

    }

    System.out.println("*******查找张三的信息并遍历全部学生信息*********");

    int flag = 0;

    for(Student student : list){

        if("张三".equals(student.getStuName())){

            list.remove(student);

            flag = 1;

            break;

        }

    }

    if(flag==0){

        Student student4 = new Student("张三",21,"软件工程4班");

       list.add(student4);

    }

    for (Student student : list){

        student.show();

    }

}  

2.创建一个Hero类,属性包含:编号id,名字name,性别sex,爱好hobby,封装Hero类的所有属性。

要求:

使用List存储Hero对象。

为List添加三个Hero对象

用户输入编号查找对应的Hero信息,如果有对应的则将英雄的的名字改为德玛,否则打印显示没有找到此英雄并添加一个ID为控制台输入的英雄,其他信息自行完善。

遍历输出所有Hero对象,以及每个英雄的所有信息。

Hero.java

package com.xiongluoluo;

public class Hero {

    private String id;

    private String name;

    private char sex;

    private String hobby;

    public Hero(){}

    public Hero(String id, String name, char sex, String hobby) {

        this.id = id;

        this.name = name;

        this.sex = sex;

        this.hobby = hobby;

    }

    @Override

    public String toString() {

        return "Hero{" +

                "id=" + id +

                ", name='" + name + '\'' +

                ", sex=" + sex +

                ", hobby='" + hobby + '\'' +

                '}';

    }

    public String getId() {

        return id;

    }

    public void setId(String id) {

        this.id = id;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public char getSex() {

        return sex;

    }

    public void setSex(char sex) {

        this.sex = sex;

    }

    public String getHobby() {

        return hobby;

    }

    public void setHobby(String hobby) {

        this.hobby = hobby;

    }

}

MyDemo.java

@Test

public void test2(){

    List<Hero> list = new ArrayList<>();

    Hero hero1 = new Hero("1","菠萝吹雪",'男',"菠萝");

    Hero hero2 = new Hero("2","梨花诗",'女',"梨花");

    Hero hero3 = new Hero("3","西门无恨",'男',"西门");

    list.add(hero1);

    list.add(hero2);

    list.add(hero3);

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入编号:");

    String id = sc.next();

    int flag = 0;

    for(Hero hero : list){

        if(hero.getId().equals(id)){

            hero.setName("德玛");

            flag = 1;

            break;

        }

    }

    if(flag==0){

        System.out.println("没有找到此英雄");

        Hero hero4 = new Hero(id,"新英雄",'男',"傻猹");

        list.add(hero4);

    }

    for(Hero hero : list){

        System.out.println(hero);

    }

}