实训20190808

 

 

Java集合框架提供了一套性能优良,使用方便的接口和类,它们位于java.util包中。

 

 

 

Collectionj接口存储一组不唯一,无序的对象

List接口存储一组不唯一,有序(有序)的对象

Set接口存储一组唯一,无序的对象

Map接口存储一组键值对象,提供key到value的映射

 

 

 

  1. 装箱→添加元素  Object
  2. 拆箱→获取元素  进行强制类型转换 

 

Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作,最常用的是HashMap。

 

 

接口的语法:

[访问修饰符] interface 接口名 extends 父接口1,父接口2...{

静态属性;

抽象方法;

作业:

  1. 以下(C)的对象可以使用键-值的形式保存数据。
  2. ArrayList    B.LunkedList    C.HashMap    D.Collection
  3. 给定如下Java代码,可以填入下划线处的代码是(D)。

Import java.util.*

Public  class Test{

Public static void main(String[] args){

___________________

list.add(“A”);

list.addFirst(“B”);

}

}

  1. List list = new ArrayList();
  2. List list = new LinkedList();
  3. ArrayList list = new ArrayList();
  4. LinkedList list = new LinkedList();
  5. 下列关于java.util.ArrayList的说法正确的是(A D)。
  6. 这个集合中的元素使有序的。
  7. 可以通过键来获取这个集合中的元素。
  8. 可以通过addFirst()方法在集合的首部插入元素。
  9. 在对这个集合执行遍历操作时,效率比较高。
  10. 给定如下Java代码,编译运行结果是(B)。

Import java.util.*;

Public class Test{

Public static void main(String[] args){

List list = new ArrayList();

list.add(“A”);

list.add(2,”B”);

String s = (String)list.get(1);

System.out.println(s);

}

}

  1. 编译时发生错误
  2. 运行时引发异常
  3. 正确运行,输出:A
  4. 正确运行,输出:B
  5. 给定如下Java代码,编译运行的结果是(C)。

import java.util.*;

public class Test {

public static void main(String[] args) {

Map map=new HashMap();

String s="key";

map.put(s, "Hello");

map.put(s, "World");

System.out.println(map.size());

}

}

  1. 编译时发生错误
  2. 运行时引发异常
  3. 正确运行,输出:1
  4. 正确运行,输出:2

简答题

1、简述Java集合框架的三大类接口及其区别。

List接口存储一组不唯一,有序(有序)的对象;

Set接口存储一组唯一,无序的对象;

Map接口存储一组键值对象,提供key到value的映射。

2、根据你的理解,请说明ArrayList和LinkedList的区别。

答:ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高。

LinkedList采用链表的方式存储。插入,删除元素时比较效率高。

3、请说明以下这段Java代码是否存在错误,如果存在,请改正并给出运行结果;如果不存在,请给出运行结果。

public class TestList {

public static void main(String[] args) {

List list = new ArrayList();

list.add("A");

list.add("B");

list.add("C");

print(list);

}

 

public static void print(List pList){

for (int i = 0; i < pList.size(); i++) {

String str = pList.get(i);

System.out.print(str);

}

}

}

String str = pList.get(i);有错误,需要进行强制类型转换。String str = (String) pList.get(i);运行结果为:

ABC

4、创建一个类Queue,代表队列(特点:先进先出),添加add(Object obj)及get()方法,并添加main()方法进行效果验证。

 1 public class Queue {
 2     
 3     LinkedList list = new LinkedList();
 4     
 5     public void add(Object obj){
 6         list.addFirst(obj);
 7     }
 8 
 9     public Object get(){
10         return list.removeLast();
11     }
12     public static void main(String[] args) {
13         
14         Queue q = new Queue();
15         q.add(1);
16         q.add(2);
17         q.add(3);
18         q.add(4);
19         q.add(5);
20         int size = q.list.size();
21         for (int i = 0; i < size; i++) {
22             System.out.println(q.get());
23         }
24     }
25 
26 }

5.创建一个HashMap对象, 并在其中添加些学员的姓名和他们的分数,键为学员姓名(使用String 类型)。值为学员分数(使用Integer 类型。从HashMap对象中获取这些学员的成绩并输出。格改其中名学员的成绩, 然后再次输出所有学灵的成绩。

(使用put( )方法进行添加和修改操作;使用values()方法输出学员成绩。)

 1 public class Score {
 2 
 3     public static void main(String[] args) {
 4         Map<String,Integer> score = new HashMap<String,Integer>();
 5         score.put("小顾",88);
 6         score.put("小蒋",96);
 7         score.put("小贺",99);
 8         score.put("小谢",98);
 9         
10         System.out.println("成绩单如下:");
11         for(String key:score.keySet()){
12             System.out.println(key+"\t"+score.get(key));
13         }
14         
15         score.put("小顾",90);
16         System.out.println("修改后成绩单如下:");
17         for(String key:score.keySet()){
18             System.out.println(key+"\t"+score.get(key));
19         }
20 
21     }
22 
23 }

猜你喜欢

转载自www.cnblogs.com/Z-5203/p/11323159.html