リスト構造

※未実行ソース(エラー処理なし!)

Java編

import java.util.ArrayList;
import java.sql.*;

public class List1{
	public static void main(String args[]){
		
		//名前リスト
		ArrayList nameList = new ArrayList();
		
		//データベースもろもろ
		Class.forName("com.mysql.jdbc.Driver");
		String conStr = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=Shift_JIS";
		Connection con = DriverManager.getConnection(conStr, "root", "passwd");
		Statement stmt = con.createStatement();
		String sql = "SELECT NAME FROM MEMBER";
		ResultSet rs = stmt.executeQuery(sql);
		
		//結果をリストに追加
		while(rs.next()){
			nameList.add(rs.getString("NAME"));
		}
		
		stmt.close();
		con.close();
		
		//全部表示
		for(int i=0; i<nameList.size(); i++){
			System.out.println(i + " : " + nameList.get(i));
		}
		
	}
}

基礎的なJDBCは返ってくるレコード数がわからなかったりします。
こんな場合にArrayList?が重宝します。

この程度の処理はArrayList?を使いましょう。LinkedList?はいけません。
Collection系はIteratorをよく使いますが、ArrayList?は上記のように書くほうが速かったりします。
伸び縮みのできる配列というイメージでしょう。

LinkedList?は学校で習うようなリスト構造です。
頭に追加したり取り出したり真ん中に挿入したりするのが得意です。
ピンポイントで取り出すのは苦手です。
コイツはIteratorを使いましょう。上記のように書くと激重になること間違いなし。

PHP編

<?php

//名前リスト
$nameList = array();

//データベースもろもろ
$con = mysql_pconnect('localhost', 'root', 'passwd') or die("DB 接続失敗!");
mysql_select_db('test', $con) or die("DB 選択失敗!");
$query = "SELECT NAME FROM MEMBER";
$result = mysql_query($query) or die(mysql_error());

//結果をリストに追加
while($row=mysql_fetch_array($result)){
	array_push($nameList, $row['MEMBER_NAME']);
}
//データベース接続終了
mysql_free_result($result);
mysql_close($con);

//表示
foreach($nameList as $name){
	echo $name . "<br>";
}

?>

PHPはどんな風にも書けますが、上記Java風にするとarray_pushでしょうか?
他にもJavaのCollection系処理が配列の関数で簡単にできたりします。
array_popで取り出すとスタック、array_shiftならキューになりますね(遅くないのだろうか・・・?)。
他にもソートとか・・・とかとか。全部使ってみたい。

感想・質問等どうぞ


Tag: Tips Java PHP


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-18 (火) 21:17:48 (735d)
.NET Ajax AmazonWebServices Android C# C++ CMS Cacoo DB Exam Generics Java JavaScript Local Oracle PHP Perl Photo Programming Pukiwiki Python Qt Review Ruby SQLServer Seasar Software Tips Tool VB WebService Windows WindowsMobile XHTML XML XMLMaster XSLT game pdf wkhtmltopdf