`

比较数组中的两个账号是否相同(初学者)

    博客分类:
  • java
 
阅读更多
Comparer.java

package com.xjh.study;

import java.util.ArrayList;
import java.util.Map;

/**
 * 比较数组中的账号是否相同
 * @author xiejiaohui
 * 
 */
public class Comparer {
	
	// 比较队列中的两个相邻的账号是否相同
	public boolean comp(ArrayList arrayList) {
		if (arrayList == null) {
			return true;
		}
		for (int i = 1; i < arrayList.size(); i++) {
			Map oneMap = (Map)arrayList.get(i - 1);
			Map twoMap = (Map)arrayList.get(i);
			String oneAcNo = (String)oneMap.get("AcNo");
			String twoAcNo = (String)twoMap.get("AcNo");
			if (oneAcNo.equals(twoAcNo)) {
				return false;
			}
		}
		return true;
	}
	
	// 比较队列中的所有账号是否重复
	public boolean comp2(ArrayList arrayList) {
		// 没有元素的时候肯定没有重复
		if (arrayList == null) {
			return true;
		}
		for (int i = 0; i < arrayList.size(); i++) {
			for (int k = i + 1; k < arrayList.size(); k++) {
				Map oneMap = (Map)arrayList.get(i);
				Map twoMap = (Map)arrayList.get(k);
				String oneAcNo = (String)oneMap.get("AcNo");
				String twoAcNo = (String)twoMap.get("AcNo");
				if (oneAcNo.equals(twoAcNo)) {
					return false;
				}
			}
		}
		return true;
	}

}




测试程序 TestComparer.java

package com.xjh.study;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import junit.framework.TestCase;

public class TestComparer extends TestCase {

	Map map1;
	Map map2;
	Map map3;
	Map map4;
	ArrayList arrayList0;
	ArrayList arrayList1;
	ArrayList arrayList2;
	ArrayList arrayList3;
	ArrayList arrayList4;
	Comparer compare;

	public void setUp() {
		map1 = new HashMap();
		map1.put("AcNo", "111111");
		map2 = new HashMap();
		map2.put("AcNo", "222222");
		map3 = new HashMap();
		map3.put("AcNo", "333333");
		map4 = new HashMap();
		map4.put("AcNo", "444444");
		// 正常情况,没有重复的账号
		arrayList0 = new ArrayList();
		arrayList0.add(map1);
		arrayList0.add(map2);
		arrayList0.add(map3);
		arrayList0.add(map4);
		// 有重复的账号(不是相邻重复)
		arrayList1 = new ArrayList();
		arrayList1.add(map1);
		arrayList1.add(map2);
		arrayList1.add(map1);
		arrayList1.add(map4);
		// 有重复的账号(相邻重复)
		arrayList2 = new ArrayList();
		arrayList2.add(map1);
		arrayList2.add(map2);
		arrayList2.add(map2);
		arrayList2.add(map3);
		// 只有一个元素(账号)
		arrayList3 = new ArrayList();
		arrayList3.add(map1);
		// 没有账号
		arrayList4 = new ArrayList();
		compare = new Comparer();

	}

	public void testComp() {
		// 测试正常情况,没有重复的账号
		this.assertEquals(true, compare.comp(arrayList0));
		// 测试正常情况,有重复的账号(不是相邻重复)
		this.assertEquals(true, compare.comp(arrayList1));
		//  测试正常情况,有重复的账号(相邻重复)
		this.assertEquals(false, compare.comp(arrayList2));
		// 测试只有一个元素
		this.assertEquals(true, compare.comp(arrayList3));
		// 测试没有元素
		this.assertEquals(true, compare.comp(arrayList4));
	}

	public void testComp2() {
		// 测试正常情况,没有重复的账号
		this.assertEquals(true, compare.comp2(arrayList0));
		// 测试正常情况,有重复的账号(不是相邻重复)
		this.assertEquals(false, compare.comp2(arrayList1));
		// 测试正常情况,有重复的账号(相邻重复)
		this.assertEquals(false, compare.comp2(arrayList2));
		// 测试只有一个元素
		this.assertEquals(true, compare.comp2(arrayList3));
		// 测试没有元素
		this.assertEquals(true, compare.comp2(arrayList4));
	}

}


分享到:
评论

相关推荐

    修改ad域密码及新增账号demo.zip

    这个示例对于初学者来说非常有价值,因为它展示了如何将理论概念转化为实际的代码实现。 在实际应用中,这样的功能可能被整合进更复杂的系统,例如用户管理系统,以便自动化AD域的用户管理。理解并能熟练运用这些...

    java源码包---java 源码 大量 实例

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    C语言,银行汇款系统

    本项目“C语言,银行汇款系统”旨在为C语言初学者提供一个实践平台,通过实际操作,加深对C语言的理解。本文将详细介绍这个系统的设计理念、主要功能以及实现方法。 一、系统设计基础 银行汇款系统的核心是模拟...

    atm机的实现

    本项目是一个针对C语言初学者设计的ATM机模拟系统,旨在帮助学习者掌握基本的编程技能并理解实际应用中的逻辑处理。 在实现ATM机的过程中,首先需要设计用户账户系统。这个系统应该包括账户创建、账户信息存储(如...

    ATM自动存取款机.rar

    ATM自动存取款机是计算机程序设计领域中一个经典的案例,它可以帮助初学者理解如何用编程语言实现实际生活中常见的应用场景。在这个C语言编写的ATM机模拟程序中,我们主要涉及了两个重要的编程概念:链表和文件操作...

    java源码包2

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包3

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包4

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    用java中集合知识做的银行管理系统

    在处理用户输入或遍历集合时,这两个语句非常有用。例如,当检测到无效的用户输入或交易时,可能会用break退出循环,提示用户重新输入;在查找特定条件的账户时,如果找到满足条件的账户,可以使用continue快速结束...

    易语言QQ自动登入器

    这款源码提供了基础的自动化操作,对于学习易语言编程以及自动化登录技术的初学者来说,是一个很好的实践案例。下面我们将深入探讨这个项目所涉及到的知识点。 首先,我们来了解【易语言】。易语言是一种简洁、直观...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    Java-Android 登录与注册(app)

    在Java-Android项目中,我们通常会创建两个主要的Activity:LoginActivity和RegisterActivity。`LoginActivity`用于接收用户的登录信息并进行验证,而`RegisterActivity`则负责收集新用户的信息并保存到数据存储。 ...

    一个储蓄平台的C语言小项目

    本项目是一个基于C语言实现的简单储蓄系统,旨在为初学者提供一个学习和实践C语言编程的平台。通过这个项目,你可以深入了解C语言的基本语法,以及如何运用这些知识来设计一个实际的、具有用户交互功能的程序。 1. ...

    常见VB考试题型.docx

    这些VB题目涵盖了基础的编程概念和操作,包括变量...以上是VB编程中的一些基础操作,它们在实际编程和解决实际问题中非常常见,特别是在初学者的学习过程中。熟练掌握这些知识点有助于提升编程技能和解决问题的能力。

    PHP Mysql 登录注册 源代码

    登录功能包括两个部分:前端网页和后端处理。前端网页使用HTML和JavaScript,后端处理使用PHP。 在前端网页中,我们可以看到,使用了JavaScript来实现表单验证,例如检查用户名和密码是否为空等。同时,使用了...

    ATM柜员机模拟程序(JAVA课程设计2012).doc

    - **构造函数**:提供了两个构造函数,一个是无参构造函数,另一个带有三个参数的构造函数用于初始化客户信息。 - **成员方法**: - `getzh()`:返回客户的账号。 - `setMima(double pswf)`:设置或更改密码(此处...

    微信小程序-省市选择控件源码

    这个控件通常包括省份和城市两个级别,用户可以通过滚动列表选择他们的所在省份和城市。在微信小程序中,我们可以利用其内置的picker组件来实现这种功能,同时通过wx.request获取省市数据,或者预先定义好省市数据...

Global site tag (gtag.js) - Google Analytics