}
}
}
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集合把键值映射到某个值。一个键值最多只能映射一个值。
public void clear(): 清空整个数据集合;
public V get(K key):根据关键字得到对应值;
public V put(K key,V value):加入新的“关键字-值”;
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
public Set
import java.util.*; public class MapDemo {
public static void main(String args[]) {
Map
for (Iterator i=allEntry.iterator();i.hasNext(); ) System.out.println(i.next()); System.out.println( m.get(\李四\) ); } }
35
1.编写应用程序,在其main方法中定义以下两个字符串数组:
String mpgStr[]={\String pngStr[]={\
然后将他们的每个元素间隔添加到ArrayList对象中,并在命令行界面显示所有元素;然后将ArrayList对象中所有.png的元素都删除,再显示ArrayList对象中的所有元素,如图所示。
2.按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。然后再向List中 位置为第四位插入数 35看看会有啥结果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥?
程序:
import java.util.*; public class SY3 {
public SY3() {
List list=new ArrayList(); list.add(1); list.add(10); list.add(5); list.add(7); list.add(6); list.add(2); list.add(9); list.add(20); list.add(14);
list.add(35); list.add(\
System.out.println(\原序列:\ for(int i=0;i<=list.size()-1;i++)
{
System.out.println(list.get(i)); }
System.out.println(\新序列\ for(int i=0;i<=list.size()-1;i++)
{
Collections.sort(list);
36
Collections.reverse(list); System.out.println(list.get(i)); } }
public static void main(String[] args) {
new SY3(); } }
结果如图
3.按顺序把下面一组数([1,2] [3,4] [2,2] [6,4] [5,2] [4,4])存放到Map中(注:允许自己自定义任何数),并按key 和value的值进行排序。 如果再向Map中加入[3,6] 看看排序结果有啥变化?并说出其理由。 程序代码:
import java.util.Collection;
import java.util.HashMap; import java.util.Set; import java.util.TreeSet;
public class TestMapSort {
public static void main(String args[]){
HashMap
Set
//取出所有键
TreeSet
System.out.print(s+\); ts.add(s); }
System.out.println(\);
System.out.println(\按键排序后的顺序:\); for(String s:ts){ System.out.print(s+\); }
37
System.out.println(\);
Collection
//取出所有值
TreeSet
System.out.println(\);
System.out.println(\按值排序后的顺序:\); for(Integer s:ts1){
System.out.print(s+\); } }
}
38
实验十一 异常处理
【开发语言及实现平台或实验环境】
Windows2000 或XP,JDK1.6与Eclipse 【实验目的】
1. 了解错误及异常类的层次体系 2. 掌握异常处理机制 3.掌握自定义异常编程
【实验要求】
1. 掌握编写异常处理机制程序。 2. 掌握自定义异常编程
【实验步骤】
一 了解异常处理机制 1. 错误与异常
在程序执行期间,会有许多意外的事件发生。例如,程序申请内存时没有申请到、对象还未创建就被使用、死循环等,称为运行错误。根据错误的性质将运行错误分为错误与异常两种类型。
(1)错误
程序进入了死循环或内存溢出,这类现象称为错误。错误只能在编程阶段解决,运行时程序本身无法解决,只能依靠其它程序干预,否则会一直处于一种不正常的状态。
(2)异常
运算时除数为0或操作数超出数据范围,打开一个文件时发现文件不存在,网络连接中断等等,这类运行错误现象称为异常。对于异常情况,可在源程序中加入异常处理代码,当程序出现异常时,由异常处理代码调整程序运行流程,使程序仍可正常运行直到结束。异常是可以检测和处理的,所以产生了相应的异常处理机制。而错误处理一般由系统承担。
2. 异常发生的原因 (1)Java 虚拟机检测到了非正常的执行状态,这些状态可能是由以下几种情况引起的: ·表达式的计算违反了Java 语言的语义,例如整数被0 除。 ·在载入或链接Java 程序时出错。
·超出了某些资源限制,例如使用了太多的内存。 (2)Java 程序代码中的throw 语句被执行。 (3)异步异常发生。异步异常的原因可能有: ·Thread 的stop 方法被调用。 ·Java 虚拟机内部错误发生。 3.异常处理机制 (1)抛出异常
Java 是这样规定的:当语义限制被违反时,将会抛出(throw)异常,即产生一个异常事件,生成一个异常对象,并把它提交给运行系统,再由运行系统寻找相应的代码来处理异常。一个异常对象可以由Java 虚拟机来产生,也可以由运行的方法生成。异常对象中包含了异常事件类型、程序运行状态等必要信息。
(2)捕获异常
异常抛出后,运行时系统从生成异常对象的代码开始,沿方法的调用栈进行查找,直到找到包含相应处理的方法代码,并把异常对象交给该方法为止,这个过程称为捕获(catch)
39