Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

javaのsetADTに三つメゾットについて

$
0
0
3つのメゾット difference, intersection, sortをsetADTに書かなくてはならないのですがまったくわかりません ちなみにarrayは重複できないように difference-1と2での違いを表示 intersection-1と2同じ import java.util.*; public class SetADT { private static Random rand = new Random(); private final int DEFAULT_CAPACITY = 100; private final int NOT_FOUND = -1; private int size; private Object[] setArray; public SetADT() { size = 0; setArray = new Object[DEFAULT_CAPACITY]; } public SetADT(int capacity) { size = 0; setArray = new Object[capacity]; } public void add(Object newElement) { if (size() == setArray.length) { resize(); } setArray[size] = newElement; size++; } public void addAll(SetADT set) { Object[] temp = set.getSetArray(); for (int i = 0; i < set.size(); i++) { if (!this.containsValue(temp[i])) { add(temp[i]); } } } public boolean contains(Object element) { for (int i = 0; i < size; i++) { if (setArray[i].equals(element)) { return true; } } return false; } public boolean containsValue(Object element) { for (int i = 0; i < size; i++) { if (setArray[i].toString().equals(element.toString())) { return true; } } return false; } public boolean equals(SetADT set) { boolean result = false; Object element; if (size() == set.size()) { result = true; for (int i = 0; i < size(); i++) { element = setArray[i]; if (!set.contains(element)) { return false; } } } return result; } public boolean isEmpty() { if (size == 0) { return true; } else { return false; } } public Object remove(Object element) { Object result = new Integer(NOT_FOUND); int search = NOT_FOUND; if (!isEmpty()) { for (int i = 0; i < size() && search == NOT_FOUND; i++) { if (setArray[i].equals(element)) { search = i; } } if (search != NOT_FOUND) { result = setArray[search]; setArray[search] = setArray[size - 1]; setArray[size - 1] = null; size--; } } return result; } public Object removeRandom() { int element; Object value = new Integer(NOT_FOUND); if (!isEmpty()) { element = rand.nextInt(size); value = setArray[element]; setArray[element] = setArray[size - 1]; setArray[size - 1] = null; size--; } return value; } public int size() { return size; } public SetADT union(SetADT set) { SetADT newSet = new SetADT(); newSet.addAll(this); newSet.addAll(set); return newSet; } private void resize() { Object[] newArray = new Object[setArray.length * 2]; for (int i = 0; i < setArray.length; i++) { newArray[i] = setArray[i]; } setArray = newArray; } public Object[] getSetArray() { return setArray; } public String toString() { String result = ""; for (int i = 0; i < size(); i++) { if ((i % 10) == 0 && i != 0) { result += "\n"; } result = result + setArray[i].toString() + "\t"; } return result; } /* public SetADT intersection(SetADT set) { // WRITE YOUR CODE HERE } public SetADT difference(SetADT set) { // WRITE YOUR CODE HERE } public Object[] sorted() { // WRITE YOUR CODE HERE } */

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>