Pleiades4.4でVectorの使用方法について
- Pleiades4.4 LunaのVector機能を利用する際に注意点があります。
- Pleiades4.3 KeplerのVectorサンプルプログラムをPleiades4.4 Lunaで利用するための変更点について質問しています。
- Pleiades4.3 Keplerでは、import java.util.Vectorに警告が出る場合の書き方についても質問しています。
- ベストアンサー
Pleiades4.4でVectorの使用
今日は! Javaの初心者です。 Pleiades4.4 LunaのVector機能の使い方について、質問します。 下記は、Pleiades4.3 Keplerに於けるVectorのサンプルプログラムであり、 結果が、コンソールに出力できます(コンパイル、RunはOK)。 このソースをPleiades4.4 Lunaで利用しようとしましたが、コンパイル段階で エラーとなります。 注 変更点) 1)import java.util.Vectorはコメント化しました。 2)vector.addElementは、サポートされていないようです。 Q1)Pleiades4.4 Lunaで走る為の変更について、コメント頂けないでしょうか? Q2)Pleiades4.3 Keplerでは、『import java.util.Vector』に警告が 出ますが、警告が出ないようにする、完全な書き方はありますか? 以上、ご回答頂けますと大変ありがたいです。 //===================================== import java.util.Vector; class Cvector { public static void main(String args[]){ //ベクトルとその要素を作成する Vector vector = new Vector(); vector.addElement(new Integer(995)); vector.addElement(new Float(-14.14f)); vector.addElement(new String("Hello")); vector.addElement(new Long(120000000)); vector.addElement(new Double(-23.45e-11)); //ベクトルの要素を表示 System.out.println(vector); //ベクトル要素を挿入する String s = new String("String_inserted"); vector.insertElementAt(s, 1); System.out.println(vector); //ベクトルから要素を削除する vector.removeElementAt(3); System.out.println(vector); } } //================================
- bakabon_X
- お礼率23% (59/250)
- Java
- 回答数1
- ありがとう数11
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> このソースをPleiades4.4 Lunaで利用しようとしましたが、コンパイル段階で > エラーとなります。 ……えーと、それ本当にエラーですか? 確かに > 注 変更点) > 1)import java.util.Vectorはコメント化しました。 をやらかすとコンパイルエラーとなりますが、それは addElement() の部分ではなく Vector インスタンスの宣言・生成の部分で出るはずです。 ですからこれは間違った変更です。 さて、ご呈示のままのソースではジェネリックスに対応したものになっておりません。したがって、それに対応するように書き換えなくてはなりませんが…… はっきり言います。このコードは過去の遺物でしかありません。 ここでの addElement() でのようにオブジェクトなら何でも追加できてしまえ、その分値を取り出す時にそのオブジェクトの追加時での型を覚えておく/調べる必要がある、というのが Vector に限らず各種コレクションの問題でした。 それを解消するために導入されたのがジェネリックスという仕組みです。 あなたがご呈示のコードは、そのままではジェネリックスに対応するように書き換えてもジェネリックスの利点が体感できないコードです。 とりあえず表示されたエラーや警告を解決したければ、6 行目を Vector<Object> vector = new Vector<>(); または上記で問題が出るなら Vector<Object> vector = new Vector<Object>(); と書き換えればいいです。しかし、それで得られるものはジェネリックス導入前の苦難に満ちた時代の産物でしかありません。したがって、ジェネリックスで <> 内に Object を入れるのは禁じ手です。 とりあえず、ジェネリックスに対応し、ジェネリックスになると何が嬉しいのかをコメントで追加するように、以下の通り修正してみました。 //================================ import java.util.Vector; class Cvector { public static void main(String args[]){ //ベクトルとその要素を作成する Vector<Integer> vector = new Vector<Integer>(); vector.addElement(new Integer(1)); vector.addElement(new Integer(2)); vector.addElement(new Integer(3)); vector.addElement(new Integer(4)); vector.addElement(new Integer(5)); //ベクトルの要素を表示 System.out.println(vector); //ベクトル要素を挿入する Integer ins = new Integer(42); vector.insertElementAt(ins, 1); System.out.println(vector); //ベクトルから要素を削除する vector.removeElementAt(3); System.out.println(vector); // vector に入るのは Integer だけに制限されている // だから、次はコンパイルできない // vector.addElement(new String("Hello!")); // vector.addElement(new Double(5.0)); } }
関連するQ&A
- Vectorの使用法
現在、課題の作成中なんですけどうまくいかないので教えてください。 ファイルに表示されているアクセスログファイルを別のファイルに表示させるコードなんですが、 import java.util.*; import java.io.*; public class AccessLog{ public static void main(String args[]){ if(args.length != 1){ System.exit(0); } String filename = args[0]; Vector vector = new Vector(); try{ String line ; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename))); while((line = reader.readLine()) != null){ vector.addElement(line); writer.println(vector); } }catch(IOException e){ System.out.println(e); } } } Vectorの使い方がよくわからないので教えてください。宜しくお願いします。
- 締切済み
- Java
- javaの中でaddElementは何ですか?
javaの中でaddElementは何ですか? import java.util.*; public class StringVector{ public static void main(String[] args){ Vector<String> v = new Vector<String>(); v.addElement("hello"); v.addElement("World"); for(String s : v){ System.out.println(s); }}} http://java.sun.com/javase/ja/6/docs/ja/api/ でも探してみましたが。。
- ベストアンサー
- Java
- Vectorクラスの使い方
いつもお世話になっております。 Vector vector = new Vector(); String array[] = new String[11]; vector.addElement(array) for( int i = 0; i1 < vector.size(); i++) { String str = (String)vector.get(i); System.out.println(str); } 11の配列にデータ(String)を入力し(ここでは省略)、11すべてをVectorへいれ、String型で取り出したいのですがエラーになります。 System.out.println(vector1.get(i));だと文字化けします。 アドバイスお願いします。そういったことを書いてあるサイト等ご存知でしたらお願いします。
- ベストアンサー
- Java
- vectorを使った列の計算について
への補足 列合計を計算したいのですが、 まったくといってどうすればいいのか思いつきません>< どのようにループすれば列合計を計算、出力できるのでしょうか? import java.util.*; import java.io.*; public class Gyosyukei { public static void main(String args[]) { try{ BufferedReader br = new BufferedReader(new FileReader(args[0])); String str; while((str = br.readLine()) != null){ // 1行を格納するVector Vector vcLine = new Vector(); StringTokenizer st = new StringTokenizer(str,","); for(int i =0;st.hasMoreTokens(); i++){ String token = st.nextToken(); // 行の要素に追加 vcLine.addElement(token); } /* 行合計 */ int gyosum = 0; int num = 0; for(int j =1; j < vcLine.size(); j++){ num = Integer.parseInt((String)vcLine.get(j)); gyosum += num; } System.out.println(gyosum); } } catch(IOException e){ } catch(ArrayIndexOutOfBoundsException ae){ } } }
- ベストアンサー
- Java
- importが分からない
importが違うせいだと思いますが、コンパイルできるように直してください。 import java.util.Date; import java.text.SimpleDateFormat; import java.util.Locale; public class a { public static void main (String args[]) { Date d = calendar.getTime(); SimpleDateFormat f = new SimpleDateFormat("EEE", Locale.JAPANESE); String s = f.format(d); System.out.println(s); } }
- 締切済み
- Java
- Vectorによる計算
名前,値,値,値,値,値,値 ・・・ 中略 ・・・ 名前,値,値,値,値,値,値 以上のフォーマットのCSVファイルを読み込み、 行と列の集計結果を出力するというプログラムを作っています。 Vectorクラスを使うというきまりがあります。 行についてはできたのですが、列の計算方法がわかりません。 どのようにするといいのでしょうか? 以下は私の作成したソースです。 ご助言いただけたらと思います。 宜しくお願いいたします。 import java.util.*; import java.io.*; public class Gyosyukei { public static void main(String args[]) { try{ BufferedReader br = new BufferedReader(new FileReader(args[0])); Vector vc = new Vector(); String str; int retsusu = 0; while((str = br.readLine()) != null){ StringTokenizer st = new StringTokenizer(str,","); int gyosum = 0; for(int i =0;st.hasMoreTokens(); i++){ String token = st.nextToken(); vc.addElement(token); if(i > 0){ int num = Integer.parseInt(token); gyosum += num; } } System.out.println(gyosum); } } catch(IOException e){ } catch(ArrayIndexOutOfBoundsException ae){ } } }
- 締切済み
- Java
- java 入力命令
以下うまくどうさしません、教えてください。 public class Main { public static void main(String[] args){ System.out.println("名前"); String name = new java.util.Scanner(System.in) .nextLine(); System.out.println("年齢"); int age = new java.util.Scanner(System.in) .nextInt(); System.out.println (age + name); } }
- 締切済み
- Java
- Javaプログラミング1001Tipsより。
Javaプログラミング1001Tipsの書籍にある例文をコンパイルしようとすると。 注:practice.javaは推奨されないAPIを使用またはオーバーライドしています。 注:詳細については-deprecationオプションをしていして再コンパイルしてください。 というエラーがでます。普通にコンパイルして実行するだけでは駄目なのでしょうか? import java.util.Date; class practice { public static void main(String arg[]) { Date now= new Date(); System.out.println(now.toGMTString().substring(12)); System.out.println(now.getHours() + ":" + now.getMinutes()); } }
- 締切済み
- Java
- 配列の値の参照について
下記のプログラムの-------------で囲まれた部分が、コンパイルは通るのですが実行すると"value[1][0]"以降が参照できません(ここではcount=3 となっています)。 for文を使わずに"System.out.println(value[1][0])"とすると値を取り出せるのですが…。 実行時のエラーは Exception in thread "main" java.lang.ArrayIndexOutOfBoundException: 3 です。 ソースコードをそのまま載せて長文になってしまい申し訳ありません。 プログラム初心者なので、些細なことでもいいので回答お願いします。 import java.util.*; import java.io.*; public class Search { static String dataFileName = "CityData.txt"; ArrayList<String> array = new ArrayList<String>(); GetDataCount gdc = new GetDataCount(dataFileName); int count = gdc.getCount(); int count2 = 0; String[][] value = new String[count][3]; public Search(String dataFileName){ try{ BufferedReader reader = new BufferedReader( new FileReader(dataFileName) ); String line = ""; while((line = reader.readLine()) != null){ Vector<String> variable = readLine(line); System.out.println(variable); count2++; } }catch(IOException e){ System.out.println(e); } //---------------------------------------------------------- for (int i=0; i<count2; i++){ for (int j=0; i<3; j++){ System.out.println(value[i][j]); } } //---------------------------------------------------------- } public Vector<String> readLine( String line ){ StringTokenizer st = new StringTokenizer( line, "," ); Vector<String> variable = new Vector<String>(); for( int i=0 ; i<3 ; i++ ){ String data = st.nextToken(); variable.addElement( data ); value[count2][i] = data; System.out.println(value[count2][i]); } return variable; } public class GetDataCount{ int count = 0; public GetDataCount(String dataFileName){ try{ BufferedReader reader = new BufferedReader( new FileReader(dataFileName) ); String line = ""; while((line = reader.readLine()) != null){ count++; } }catch(IOException e){ System.out.println(e); } } public int getCount(){ return count; } } public static void main(String[] args){ new Search(dataFileName); } }
- 締切済み
- Java
- エラー
以下のプログラムをコンパイルすると Eki.java:7: 型の開始が不正です。 try { ^ Eki.java:24: <identifier> がありません。 } ^ エラー 2 個 というエラーが表示されます。 どういう意味ですか。 import java.io.*; import java.util.*; class Eki { Vector midoEki = new Vector(); try { FileReader midoF = new FileReader("mii.txt"); BufferedReader midoB = new BufferedReader(midoF); String str; int i = 0; while ((str = midoB.readLine()) != null) { midoEki.insertElementAt(str, i); System.out.println(midoEki); i++; } midoF.close(); } catch(Exception e) { System.err.println("e"); } }
- 締切済み
- Java
お礼
hitomura さま 貴方の、コードでPleiades4.4で実行しました所、旨く実行できました。 有難うございました。
補足
hitomura さま 貴方の、コードでPleiades4.4で実行しました所、旨く実行できました。 有難うございました。