⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arraybag.java

📁 用数组实现的bingo游戏程序
💻 JAVA
字号:
package jss.bag;

import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Random;

public class ArrayBag implements BagADT {

	private static Random rand = new Random();

	private final int DEFAULT_CAPACITY = 100;

	private final int NOT_FOUND = -1;

	private int count;

	private Object[] contents;

	public Bingo myBingo;

	public ArrayBag() {
		count = 0;
		contents = new Object[DEFAULT_CAPACITY];
	}

	public ArrayBag(int initialCapacity) {
		count = 0;
		contents = new Object[initialCapacity];
	}

	public void add(Object element) {
		if (size() == contents.length)
			expandCapacity();
		contents[count] = element;
		count++;
	}

	private void expandCapacity() {
		Object[] larger = new Object[contents.length * 2];
		for (int index = 0; index < contents.length; index++) {
			larger[index] = contents[index];
		}
		contents = larger;
	}

	public void addAll(BagADT bag) {
		Iterator scan = bag.iterator();
		while (scan.hasNext())
			add(scan.next());
	}

	public Object removeRandom() {
		int choice = rand.nextInt(count);
		Object result = contents[choice];
		contents[choice] = contents[count - 1];
		contents[count - 1] = null;
		count--;
		return result;
	}

	public Object remove(Object target) throws NoSuchElementException {
		int search = NOT_FOUND;
		for (int index = 0; index < count && search == NOT_FOUND; index++)
			if (contents[index].equals(target))
				search = index;

		if (search == NOT_FOUND) {
			throw new NoSuchElementException();
		}

		Object result = contents[search];
		contents[search] = contents[count - 1];
		contents[count - 1] = null;
		count--;

		return result;
	}

	public BagADT union(BagADT bag) {
		ArrayBag both = new ArrayBag();
		for (int index = 0; index < count; index++)
			both.add(contents[index]);

		Iterator scan = bag.iterator();
		while (scan.hasNext())
			both.add(scan.next());
		return both;
	}

	public boolean contains(Object target) {
		int search = NOT_FOUND;
		for (int index = 0; index < count && search == NOT_FOUND; index++)
			if (contents[index].equals(target))
				search = index;
		return (search != NOT_FOUND);
	}

	public boolean equals(BagADT bag) {
		boolean result=false;
		ArrayBag temp1=new ArrayBag();
		ArrayBag temp2=new ArrayBag();
		Object obj;
		
		if(size()==bag.size()){
			temp1.addAll(this);
			temp2.addAll(bag);
			
			Iterator scan=bag.iterator();
			while(scan.hasNext()){
				obj=scan.next();
				if(temp1.contains(obj)){
					temp1.remove(obj);
					temp2.remove(obj);
				}
			}
			result=(temp1.isEmpty()&&temp2.isEmpty());
		}
		return result;
	}

	public boolean isEmpty() {
		return (count == 0);
	}

	public int size() {
		return count;
	}

	public Iterator iterator() {
		return new ArrayIterator(contents,count);
	}

	public String toString() {
		String result="";
		for(int index=0;index<count;index++)
			result=result+contents[index].toString()+"\n";
		return result;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -