- ベストアンサー
Generic.List・ArrayList・配列の使い分け(VB2005)
Generic.List・ArrayList・配列は、どのように使い分ければよいでしょうか? 簡単な具体例(こういう場合はGeneric、こういう場合は配列など)を挙げて説明して頂けると助かります。 使い分ける必要がないとしたら、ArrayList・配列を使用している箇所はGeneric.Listに置き換えたほうがよいでしょうか? ご助言よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- Generic.Listに1次元配列の配列を格納したい(VB2005)
VB2005の質問です。 変数ghogeにString型の1次元配列の配列を格納したいと考えています。 ----------------------------------------------- 'a) Dim hoge()() As string = _ {New string() {"a1", "b1", "c1"}, _ New string() {"a2", "b2", "c2"}, _ New string() {"a3", "b3", "c3"}} Dim ghoge As New Generic.List(of ) 'b) MessageBox.Show(ghoge(1)(1)) ' "b2"と表示したい ----------------------------------------------- 質問内容は、(a)を(b)の初期値として設定するにはどのようにすればよいか、ということです。 (b)がGeneric.ListでなくArrayListの場合だと、 Dim ghoge As New ArrayList(hoge) でhoge配列を格納できますが、Generic.Listの場合はどのような構文にすればよいでしょうか。 現在は、下記のような処理でghogeに値を格納しています。 ------------------------------------------------------------ Dim ghoge As New Generic.List(Of Generic.List(Of String)) Dim aryhoge1 As New Generic.List(Of String)(New String() {"a1", "b1", "c1"}) Dim aryhoge2 As New Generic.List(Of String)(New String() {"a2", "b2", "c2"}) gary_hoge.Add(ary_hoge1) gary_hoge.Add(ary_hoge2) MessageBox.Show(gary_hoge(1)(1)) ' "b2"と表示される ------------------------------------------------------------ どうぞよろしくお願い致します。
- ベストアンサー
- Visual Basic
- ArrayList で配列を扱う場合の記述方法について
ArrayList で配列を扱う場合の記述方法について、 探しきれないのでご教授お願いします。 ArrayList list = new ArrayList(); list.add("AAA"); list.add("BBB"); list.add("CCC"); for (int i = 0; i < list.size(); i++) { System.out.println(i+"は"+list.get(i)); } という箇所をArrayList<Date>listを使って書き直すのはどのようになるでしょうか。 ArrayList<Date>list= new ArrayList<Date>(); list.add("AAA"); list.add("BBB"); list.add("CCC"); for (int i = 0; i < list.size(); i++) { System.out.println(i+"は"+list.get(i)); } とすると、 型 ArrayList<Date> のメソッド add(Date) は引数 (String) に適用できません。 というエラーになってしまいました。
- ベストアンサー
- Java
- C# ArrayListを二次元配列のように使用したい。
C#についての質問です。 現在、ArrayListを用いた情報管理リストのプログラムを作成しています。 そのプログラムにソートを行う機能と、検索機能をつけたいのですが、そこで質問です。 ArrayList内の要素を、「特定のフィールド(例えば氏名であったり、年齢であったりするのですが…)を基準として昇順または降順にソートする」という処理、またあるフィールドのみを基準に検索を行うという処理を行う際、ArrayListを二次元配列のように使用することが出来たら便利だな、と思ったのですが、そのようなことは可能でしょうか? いろいろと試したり、独自に調べてはみたのですが、いまいちわからず、質問させていただきました。 お分かりになられる方がいらっしゃいましたら、ご教授いただければと思います。 よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- C#の配列リストを機械的に複数作りたいです。非常に初歩的な質問で恐縮な
C#の配列リストを機械的に複数作りたいです。非常に初歩的な質問で恐縮なのですが、 C#で、配列リストを機械的に複数個作ることはできないでしょうか。 具体的には、myArrayListという配列リストを100個作るとして、 System.Collections.ArrayList myArrayList1 = new System.Collections.ArrayList(); System.Collections.ArrayList myArrayList2 = new System.Collections.ArrayList(); System.Collections.ArrayList myArrayList3 = new System.Collections.ArrayList(); System.Collections.ArrayList myArrayList4 = new System.Collections.ArrayList(); System.Collections.ArrayList myArrayList5 = new System.Collections.ArrayList(); ・・・ System.Collections.ArrayList myArrayList100 = new System.Collections.ArrayList(); をループなどを使うことによって書きたいのですが。 詳しい方がいらっしゃいましたら、アドバイス願います。 同じ内容の質問を先ほど投稿してしまったのですが、タイトルが不適切だったため 直させていただきました。すいませんでした。
- ベストアンサー
- その他(プログラミング・開発)
- ArrayListを使った多次元配列の比較方法
JAVAでArrayListを使った多次元配列の要素を比較方法で困っています。 下記のコードで、アイテム、数量、金額をランダムに10個配列に追加しています。 private ArrayList<Item> list; public ArrayList<Item> getItems1() { return list; } public void setItems(ArrayList<Item> items) { getItems(); } public Inventory() { list = new ArrayList<Item>(); } public void getItems(){ for(int i =0; i<10; i++){ int theItemType = (int)(Math.random()*6+1); int theQut = (int)(Math.random()*20+1); int thePrice = (int)(Math.random()*40+101)/20; list.add(new Item(theItemType, theQut, thePrice)); } } public String getItemName() { if(itemType == 1){ return "シャツ"; } if(itemType == 2){ return "スカート"; } if(itemType == 3){ return "ズボン"; } if(itemType == 4){ return "ネクタイ"; } if(itemType == 5){ return "靴"; } if(itemType == 6){ return "靴下"; } return null; } public String toString() { return getItemName() + " , " + getQut() + " " + getPrice(); } 同じアイテム、金額の場合は、数量を合計して表示させたいです。例えば、配列の要素が下記のような場合、1つ目と2つ目の要素は同じアイテム、金額になるので、数量を20として表示させたいのですが、どのように比較していいのかわかりません。どなたか教えてください。よろしくお願いします。 靴下 , 4, 5 靴下 , 16, 5 ネクタイ , 3, 5 ネクタイ , 16, 6 ネクタイ , 2, 6 ズボン , 16, 6 ズボン , 15, 6 スカート , 3, 6 靴 , 17, 7 シャツ , 17, 7
- ベストアンサー
- Java
- ArrayListなどのソート
いつもお世話になっています。ArrayListなどをソートする際に、Comparatorインターフェースを実装したクラスを利用して、辞書順や数値順などでソートすることは出来ますよね。これを任意の単語の順番にソートするにはどのようにすればよいのでしょうか。つまり、下記例において、文字列順ではなくて、"ONE", "TWO", "THREE", "FOUR"の順番にソートしたいのです。 ArrayList list = new ArrayList(); list.add("THREE"); list.add("ONE"); list.add("FOR"); list.add("TWO"); やはりcompare()メソッド内で総当り的に比較するしかないのでしょうか。 開発環境はJDK1.4です。事情により返答が遅れてしまうかもしれませんが、どうぞ宜しくお願い致します。
- ベストアンサー
- Java
- JAVA 配列を格納したArrayListのサイズ
ArrayListにcsvファイルを格納する処理を作成しました。 読み込みはBufferedReaderで行単位で読み込ませ、 ArrayListの各要素には各行をカンマ区切りでわけた配列を 入れてあります。 ここで読み込むcsvファイルがデータなしの時にデータがないことを コメントする処理を入れたいのですが、ArrayListのサイズが0であるという 条件を思いつき、「length」や「size()」で条件文を作成したところ、 コンパイルされても処理が正常に走りませんでした。 条件にしている箇所があっているのか間違っているのか。 あっているならば、配列をしまってあるArrayListの要素数を 得る方法、間違っているならば、正しい条件を教えてください。 大変恐縮ですが、ご助言お願いいたします。 inName : 取り込みファイル名(argsで引っ張っています。) outName : はき出しファイル名(同上) ExceptionはIOとFileNotFoundをcatchしています。 try{ bf = new BufferedReader(new FileReader(inName)); outbf = new BufferedWriter(new FileWriter(outName)); String line; while((line = bf.readLine()) != null){ al.add(line.split(",",0)); /*for(int i=0 ; i < data.length ; i++){ al.add(data[i]); }*/ //行数0の処理を記述しようとしている箇所 } for(String[] out : al){ for(int i=0 ;i<out.length ; i++){ outbf.write(out[i]); outbf.newLine(); } } }
- ベストアンサー
- その他(プログラミング・開発)
- ArrayListによる計算表作成
for文を使用し九九の計算結果を配列に格納し、その配列内の情報を表形式で表示してみる。※配列はArrayListを使用すること 上記の問題を解いています。 -------------------------------------------------------------- import java.util.ArrayList; public class m4_2 { public static void main(String args[]) { ArrayList list = new ArrayList(); String[]s = new String[9]; for(int i = 1; i<=s.length; i++){ for(int j =1; j<=s.length; j++){ list.add((i * j)); //ここがどのように記述するか?? } System.out.print(list.get(0)); System.out.print(list.get(1)); System.out.print(list.get(2)); System.out.print(list.get(3)); System.out.print(list.get(4)); System.out.print(list.get(5)); System.out.print(list.get(6)); System.out.print(list.get(7)); System.out.print(list.get(8)); System.out.print("\n"); } } } ---------------------------------------------------------- 実行結果イメージ 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 (以下省略) 私の書いたソースでは1の位しか計算してくれません。 今月から本格的にJavaを勉強し始めた初心者なので どうかよろしくお願いいたします。
- ベストアンサー
- Java
- Listのマッチを判定する便利Util
Javaで以下のような処理をスマートに実現する良い方法を教えて下さい。 ・Listに配列をaddして、そのListの配列に対して指定した値がいくつマッチするかを判定する。 具体例として、 1、配列を作成 String[] array1 = { "aaa", "bbb", "ccc" }; String[] array2 = { "bbb", "ccc", "ddd" }; String[] array3 = { "ccc", "ccc", "ddd" }; String[] array4 = { "fff", "ggg", "hhh" }; 2、Listに配列を格納 List list = new ArrayList(); list.add(array1); list.add(array2); list.add(array3); list.add(array4); 3、Listの要素から"ccc"と"ddd"が2つマッチする要素を取得 上記の場合は"ccc"と"ddd"が2つマッチするのはarray2だけなのでarray2を取得する。 ※array3も"ccc"と"ddd"が2つありますが、"ccc"が2つあるので計3つマッチと判定して取得しない。 質問は上記3、の箇所です。 できればfor文でループさせて突合せ処理みたいなことは避けてスマートに実現する方法を探しております。 どなたか良い方法をご存知でしたらご教示下さい、お願い致します。
- ベストアンサー
- Java
- リクエストからArrayListのデータが取得出来ない
いつもお世話になっております。 表題の通り、リクエストからArrayListのデータが取得出来ないのです。 javaで、 ArrayList cmArray = new ArrayList(); データベースからデータ取得 request.setAttribute("category",cmArray.toArray()); jspで ArrayList list = new ArrayList(); list = (List)request.getAttribute("category"); と取得しようとしています。 そうすると、java.lang.ClassCastExceptionが発生してしまいます。 どなたか分かる方がいましたら、ご教授下さい。 よろしくお願い致します。
- ベストアンサー
- Java
- mfc-j6973cdwで電源が入らない問題が発生しました。再度電源を入れても解決しないため、相談したいです。
- Windows10でmfc-j6973cdwの電源が入らない状況が発生しました。有線LANで接続しており、試したこととしては再起動しても改善されない状況です。
- mfc-j6973cdwの電源が入らなくなりました。有線LANで接続しており、Windows10を使用しています。電源を切って再度入れ直しても反応がないため、対処方法を知りたいです。
お礼
kero_mioさん 各機能の概要を付記していただき、とてもわかりやすいです。 Generic.Listがやはり高機能ですね。。 互換性を考慮しないプログラムの場合、配列・コレクションはこれで統一してみようかと検討中です。 ご回答ありがとうございました。