Javaのプログラムについての質問です。長くなってしまいますがご容赦下さい。
Listインターフェースの実装クラスの自作と、作成したクラスの全メソッドを呼び出すサンプルを作成せよ、という問題です。以下が現在までに作成したコードになります。
注意点として、java.util.Listの実装クラスは使用出来ません(ArrayListなど)。実装するメソッドは、コードの中にコメントを振ってあります。
import java.util.List;
import java.util.Collection;
import java.util.Iterator;
import java.util.ListIterator;
class Mylist implements List{
private int Count;
private String Data[];
// コンストラクタ
public Mylist(){
Data = new String[10];
Count = 0;
}
/**
実装するaddメソッド
@return boolean APIの設定に従う
@param e エレメント(要素) **/
public boolean add(E e){
Data[Count] = (String)e;
Count++;
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;
}
/**
実装するclearメソッド **/
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;
}
/**
実装するgetメソッド
@return E エレメント(要素)
@param i 指定されたインデックス番号 **/
public E get(int i){
/*
エレメントeに、String型Data[i]を
キャストして格納*/
E e = (E)Data[i];
return e;
}
public int hashCode(){
return -1;
}
public int indexOf(Object str){
return -1;
}
public boolean isEmpty(){
return false;
}
public Iterator iterator(){
return null;
}
public int lastIndexOf(Object str){
return -1;
}
public ListIterator listIterator(){
return null;
}
public ListIterator listIterator(int i){
return null;
}
/**
* 実装するremoveメソッド
* @return E エレメント(要素)
* @param index 指定されたインデックス番号
**/
public E remove(int index){
/*
Dataを最大まで回し、iをインクリメントしたData[i++]を
String型Dataに格納する*/
for(int i = index; i < Data.length; i++){
Data[i] = Data[index++];
}
Count--;
E e = (E)Data;
return e;
}
public boolean remove(Object str){
return false;
}
public boolean removeAll(Collection c){
return false;
}
public boolean retainAll(Collection c){
return false;
}
/**
* 実装するsetメソッド
* @return E エレメント(要素)
* @param i 指定されたインデックス番号
* @param element 置き換える要素
**/
public E set(int i,E element){
// String型Dataにelementをキャストして格納
Data[i] = (String)element;
// エレメントeにData[i]をキャストして格納
E e = (E)Data[i];
// 値を返す
return e;
}
/**
* 実装するsizeメソッド
* @return int 指定されたインデックス番号
**/
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();
/*
addメソッドを実装し、機体名を要素とする。
addを最大まで回し、getメソッドで要素を取り出して表示する*/
sub.add("ビルドバーニングガンダム");
sub.add("ライトニングガンダム");
sub.add("ウイニングガンダム");
sub.add("ガンダムフェニーチェリナーシタ");
sub.add("R・ギャギャ");
sub.add("ユニコーンガンダム");
for(int i = 0; i < sub.size(); i++){
System.out.println(sub.get(i));
}
// sizeメソッド
System.out.println("\r\n" + "機体数は" + sub.size() + "です" + "\r\n");
// setメソッド
sub.set(0,"ガンダムエピオン");
for(int i = 0; i < sub.size(); i++){
System.out.println(sub.get(i));
}
// 改行
System.out.println();
// 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() + "になったので負けです");
}
}
コンパイルして実行すると、removeメソッドで指定した箇所ではなく、要素の1番最後が削除されています。思うに、removeメソッドを実装する所のfor(int i = index; i < Data.length; i++){の中の条件が違うと思うのですが。。。。
また、現在addには10個箱を作成するようにしていますが、11個目をメインクラス内で用意した場合、例外ではなく新たに箱を作らなければならない、という後だしジャンケン的な事を言われて、思わず「じゃあArrayListでいいじゃないか」と思ってしまいました。
気を取り直してこの3連休で終わらせたいと思っています。ここまでで現状コードの完成は50%かそれ以下だとは思いますが、どなたか上記2点について御教授頂けないでしょうか。よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
final修飾子を使っているのに、...
-
コマンドプロンプト実行後に画...
-
VBPをダブルクリックするとたま...
-
ExcelのxlDialogInsertPictureで。
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
java のプログラム
-
ExcelVBA Findメソッドで検索の...
-
エクセルVBAにおけるON TIMEメ...
-
staticメソッドの長所短所
-
リストボックスの項目削除
-
Javaのわからない問題がありま...
-
Refreshメソッドの使い方
-
javaの質問です 次の機能を有す...
-
オーバーロードの「あいまい」...
-
mainメソッドのthrows節で設定...
-
C#で右からnカラム目に文字を挿...
-
ディレクトリの階層構造をツリ...
-
VB.NET/256色でのBMPファイル保存
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
エクセルVBAにおけるON TIMEメ...
-
【sendkeysメソッドが動かずに...
-
コマンドプロンプト実行後に画...
-
onClickで関数呼出し後に、結果...
-
DataGridViewでセルクリックイ...
-
Labelコントロールに数字を代入...
-
ExcelのxlDialogInsertPictureで。
-
final修飾子を使っているのに、...
-
JSPで<SELECT>の中にDBから持っ...
-
VBPをダブルクリックするとたま...
-
Excel VBA でExcelを終了したい...
-
Refreshメソッドの使い方
-
ウィンドウを最前面にできません
-
javascriptからjavaを呼び出したい
-
VB.netで、シリアル通信のタイ...
-
mainメソッドのthrows節で設定...
-
VBAでSaveAs使用し、指定してい...
-
PDFファイルから別ウィンドウで...
-
Application.Wait の参照設定
おすすめ情報