Javaのプログラムの質問です。
Javaのプログラムについての質問です。
Listインターフェースの実装クラスの自作と、作成したクラスの全メソッドを呼び出すサンプルを作成せよ、という問題です。
注意点として、java.util.Listの実装クラスは使用出来ません(ArrayListなど)。実装するメソッドは、コードの中に番号を振ってあります。
import java.util.Collection;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.List;
class LocalList implements List{
private int Count;
private String Data[];
private Iterator ite;
private ListIterator lite;
// コンストラクタ
void mylist(){
Data = new String[10];
Count = 0;
}
(1)
public boolean add(Object str){
if(Count >= 10){
return false;
}
Data[Count ++] = new String((String)str);
return true;
}
public void add(int i,Object str){
}
public boolean addAll(Collection c){
return false;
}
public boolean addAll(int i,Collection c){
return false;
}
(2)
public void clear(){
Count = 0;
}
public boolean contains(Object str){
return false;
}
public boolean containsAll(Collection c){
return false;
}
public boolean equals(Object str){
return false;
}
(3)
public Object get(int i){
return (i >= Count);
}
public int hashCode(){
return -1;
}
public int indexOf(Object str){
return -1;
}
public boolean isEmpty(){
return false;
}
public Iterator iterator(){
return ite;
}
public int lastIndexOf(Object str){
return -1;
}
public ListIterator listIterator(){
return lite;
}
public ListIterator listIterator(int i){
return lite;
}
(4)
public Object remove(int i){
return (i >= Count);
}
public boolean remove(Object str){
return true;
}
public boolean removeAll(Collection c){
return false;
}
public boolean retainAll(Collection c){
return false;
}
(5)
public Object set(int i,Object str){
return Data[i];
}
(6)
public int size(){
return Count;
}
public List subList(int i,int j){
return this;
}
public Object[] toArray(){
return Data;
}
public Object[] toArray(Object[] a){
return Data;
}
}
class Main {
public static void main(String[] args) {
mylist sub = new mylist();
sub.add("ビルドバーニングガンダム");
sub.add("ライトニングガンダム");
sub.add("ウイニングガンダム");
sub.add("ガンダムフェニーチェリナーシタ");
sub.add("R・ギャギャ");
for(int i = 0; i < sub.size(); i++){
System.out.println(sub.get(i));
}
// 改行
System.out.println();
// setメソッド
sub.set(1,"ガンダムエピオン");
for(int i = 0; i < sub.size(); i++){
System.out.println(sub.get(i));
}
// 改行
System.out.println();
// sizeメソッド
System.out.println("\r\n" + "機体数は" + sub.size() + "です" + "\r\n");
// removeメソッド
sub.remove(1);
for(int i = 0; i < sub.size(); i++){
System.out.println(sub.get(i));
}
// clearメソッド
sub.clear();
System.out.println("\r\n" + "機体数が" + sub.size() + "になったので負けです");
}
}
setメソッドとremoveメソッド以外は起動するのようになったのですが、この2つがうんともすんとも動きません。ジェネリクス型を使うという考え方もあるらしいのですが、ネットで調べてもピンと来ず寸詰まり状態になってしまっています。後少しだと思うのですが。。。。 どなたかご教授頂けないでしょうか?よろしくお願い致します。