实验十 集合编程

更新时间:2024-05-26 16:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验十 集合编程

【开发语言及实现平台或实验环境】

Windows2000 或XP,JDK1.6与Eclipse 【实验目的】

1.掌握List、Collection、Set、Map、HashTable等常用数据结构的使用 2.进一步熟悉基于接口编程的特点

3. 掌握迭代器的用法 【实验要求】

1. 掌握List、Collection、Set、Map、HashTable等常用数据结构的使用。 2. 掌握迭代器编程 【实验内容】

1 Collection接口定义了存取一组对象的方法,其子接口Set 和List分别定义了存储方式: Set中的数据对象没有顺序且不可以重复。List中的数据对象有顺序且可以重复。Map接口定义料存取“键(key)—值(value)映射对”的方法。

2 Collection接口提供的方法:

3 Set 接口提供的方法与Collection接口中的方法一样,没有添加新的方法,只是Set容器中装的元素无顺序和不可重复,例1

import java.util.HashSet; import java.util.Set;

public class TestSet {

public static void main(String[] args) { } }

Set s1 = new HashSet(); Set s2 = new HashSet(); s1.add(\); s1.add(\); s1.add(\); s2.add(\); s2.add(\); s2.add(\);

Set sn = new HashSet(s1); sn.retainAll(s2);

Set su = new HashSet(s1); su.addAll(s2);

System.out.println(sn); System.out.println(su);

4 List接口提供的方法除Collection接口中的方法外,还添加了一些新的方法。

在java.util.Collections提供了一些对于List常用的算法,这些方法都是静态的,例2

import java.util.Collections; import java.util.LinkedList; import java.util.List;

public class TestList {

public static void main(String[] args){

List l1 = new LinkedList(); List l2 = new LinkedList(); for(int i=0;i<10;i++){

l1.add(\ + i);

}

}

}

System.out.println(l1); Collections.shuffle(l1); System.out.println(l1); Collections.reverse(l1); System.out.println(l1); Collections.sort(l1); System.out.println(l1);

System.out.println(Collections.binarySearch(l1, \));

4. Map集合把键值映射到某个值。一个键值最多只能映射一个值。 Key value

public void clear(): 清空整个数据集合;

public V get(K key):根据关键字得到对应值;

public V put(K key,V value v):加入新的“关键字-值”;

public V remove(Object key):删除Map中关键字所对应的映射关系;

public boolean equals(Object obj): 判断Map对象与参数对象是否等价,两个Map相等,当且仅当其entrySet()得到的集合是一致的。

public boolean containsKey(Object key):判断在Map中是否存在与关键字匹配的映射关系。

public boolean containsValues(Object value):判断在Map中是否存在与键值匹配的映射关系。

Map中实际上包括了关键字、值以及它们的映射关系的集合,可分别使用如下方法得到:

public Set keySet():关键字的集合。 public Collection values():值的集合。

public Set> entrySet():关键字和值的映射关系的集合。

import java.util.*; public class MapDemo {

public static void main(String args[]) {

Map m = new HashMap( ); m.put(\张三\,\); m.put(\李四\,\); m.put(\王五\,\); Set allEntry=m.entrySet();

for (Iterator i=allEntry.iterator();i.hasNext(); ) System.out.println(i.next()); System.out.println( m.get(\李四\) ); } }

1.编写应用程序,在其main方法中定义以下两个字符串数组:

String mpgStr[]={\String pngStr[]={\

然后将他们的每个元素间隔添加到ArrayList对象中,并在命令行界面显示所有元素;然后将ArrayList对象中所有.png的元素都删除,再显示ArrayList对象中的所有元素,如图所示。

import java.util.Collections; import java.util.ArrayList; import java.util.List; public class YY{ }

public static void main(String[] args) {

String mpgStr[]={\,\,\,\,\}; String pngStr[]={\,\,\,\,\};

List s1=new ArrayList(); for(int i=0;i

for(int i=0;i

System.out.println(\对象中所有元素\); System.out.println(s1);

for(int i=0;i

System.out.println(\将ArrayList对象中所有.png的元素都删除后为:\); System.out.println(s1); }

S1.remove(i+”.png”); s1.add(pngStr[i]);

s1.add(mpgStr[i]);

2.按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。然后再向List中 位置为第四位插入数 35看看会有啥结

果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥?

import java.util.Collections; import java.util.LinkedList; import java.util.List; public class list { }

public static void main(String[] args) {

List s1=new LinkedList(); s1.add(1); s1.add(10); s1.add(5); s1.add(7); s1.add(6); s1.add(2); s1.add(9); s1.add(20); s1.add(14);

Collections.sort(s1);

System.out.println(\升序排序为:\); System.out.println(s1); Collections.reverse(s1);

System.out.println(\降序排序为:\); System.out.println(s1); s1.add(3, 35);

System.out.println(\插入后为:\); System.out.println(s1); //s1.add(\ Collections.sort(s1);

System.out.println(\升序排序为:\); System.out.println(s1); Collections.reverse(s1);

System.out.println(\降序排序为:\); System.out.println(s1);

}

3.按顺序把下面一组数([1,2] [3,4] [2,2] [6,4] [5,2] [4,4])存放到Map中(注:允许自己自定义任何数),并按key 和value的值进行排序。 程序代码:

本文来源:https://www.bwwdw.com/article/rgr7.html

Top