测试Set的打印输出

本文通过自定义HashSet, TreeSet及LinkedHashSet的toString()方法,展示不同Set实现类的内部迭代顺序及其底层存储顺序。实验中填充了五个元素并打印各集合的状态,以此验证集合的迭代顺序是否符合预期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
*此测试程序的目的是检测Set的toString()方法是否是由叠代器来遍历集合的
*顺便检测低层存储顺序(Set提供的toString()方法应该是反映的底层结构)
*/

//PrintSet.java

package com.msn.spaces.bryantd001;
import java.util.*;

class MyHashSet extends HashSet{
      public String toString(){
            String result = "{";
            Iterator it = iterator();
            while (it.hasNext()){
                  result += it.next().toString() + ' ';
            }
            result += "}";
            return result;
      }
}

class  MyTreeSet extends TreeSet{
      public String toString(){
            String result = "{";
            Iterator it = iterator();
            while (it.hasNext()){
                  result += it.next().toString() + ' ';
            }
            result += "}";
            return result;
      }
}

class MyLinkedHashSet extends LinkedHashSet{
      public String toString(){
            String result = "{";
            Iterator it = iterator();
            while (it.hasNext()){
                  result += it.next().toString() + ' ';
            }
            result += "}";
            return result;
      }
}

public class PrintSet{
      static void fill(Set set){
            for (int i = 0; i < 5; i++){
                  set.add(new Integer(i));
            }
      }
     

      public static void main(String[] args){
            HashSet hs = new HashSet();
            TreeSet ts = new TreeSet();
            LinkedHashSet lhs = new LinkedHashSet();
            fill(hs);
            fill(ts);
            fill(lhs);

            System.out.println("Show the order of the Sets by the default toStrintg() way.");
            System.out.println(hs);
            System.out.println(ts);
            System.out.println(lhs);
            System.out.println();

           MyHashSet mhs = new MyHashSet();
           MyTreeSet mts = new MyTreeSet();
           MyLinkedHashSet mlhs = new MyLinkedHashSet();
           fill(mhs);
           fill(mts);
           fill(mlhs);
           System.out.println("Show the order of the Customized Sets by my toString() way.");
           System.out.println(mhs);
           System.out.println(mts);
           System.out.println(mlhs);  
     }
}

### 编写PL/SQL测试脚本以实现正确输出 在PL/SQL中,`DBMS_OUTPUT.PUT_LINE` 是一种常用的调试方法,用于向控制台打印消息。为了确保脚本能正常运行并输出预期的结果,可以通过设置 `SET SERVEROUTPUT ON` 来启用服务器端的输出功能[^1]。 以下是完整的示例代码: ```plsql SET SERVEROUTPUT ON; DECLARE v_message VARCHAR2(4000); BEGIN -- 初始化变量 v_message := '这是一个测试消息'; -- 打印单条消息 DBMS_OUTPUT.PUT_LINE(v_message); -- 循环打印多条消息 FOR i IN 1..5 LOOP DBMS_OUTPUT.PUT_LINE('循环第 ' || TO_CHAR(i) || ' 次'); END LOOP; END; / ``` 上述代码展示了如何通过声明变量、初始化以及调用 `DBMS_OUTPUT.PUT_LINE` 方法来输出调试信息。此外,还演示了一个简单的循环结构,以便连续多次输出不同的内容[^3]。 对于更复杂的场景,比如需要验证某些逻辑是否按预期执行时,可以在特定条件下加入条件判断语句,并配合 `DBMS_OUTPUT.PUT_LINE` 进行状态报告。例如: ```plsql SET SERVEROUTPUT ON; DECLARE v_number NUMBER := 10; BEGIN IF v_number > 5 THEN DBMS_OUTPUT.PUT_LINE('v_number 大于 5'); ELSE DBMS_OUTPUT.PUT_LINE('v_number 小于等于 5'); END IF; END; / ``` 当涉及到单元测试或者自动化验证时,可以利用类似的机制记录输入参数和返回结果之间的关系。这样不仅有助于开发阶段快速定位问题所在,还能提高后期维护效率[^4]。 需要注意的是,尽管 `DBMS_OUTPUT.PUT_LINE` 提供了一种便捷的方式来查看程序内部的工作情况,但它并不适合正式生产环境中作为主要的日志记录手段。因为在分布式部署下可能无法有效收集这些日志信息[^2]。 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值