【Java編】 学校の宿題は俺にやらせろ 【Java編】
■ このスレッドは過去ログ倉庫に格納されています
0001糞すれクリエータ
NGNGただGUIかんけーはめんどクセーから、放置するぞ!
☆丸投げ歓迎 AGE進行☆
0599デフォルトの名無しさん
NGNGなんでも渡せるってことは
Object型でいいですね?
0601デフォルトの名無しさん
NGNGpackage net2ch;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface ClassRepository extends Remote {
public void putClassData(String name, byte[] b) throws RemoteException;
public Object instantiate(String classname) throws RemoteException;
}
0602デフォルトの名無しさん
NGNGpackage net2ch;
import java.util.HashMap;
import java.util.Map;
public class RemoteClassLoader extends ClassLoader {
private Map map = new HashMap();
protected Class findClass(String name) throws ClassNotFoundException {
byte[] b = loadClassData(name);
if (b == null) {
throw new ClassNotFoundException("class not found");
}
return defineClass(name, b, 0, b.length);
}
private byte[] loadClassData(String name) {
return (byte[]) map.get(name);
}
public void putClassData(String name, byte[] b) {
map.put(name, b);
}
}
0603デフォルトの名無しさん
NGNGpackage net2ch;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class RmiServer extends UnicastRemoteObject implements ClassRepository {
private RemoteClassLoader loader = new RemoteClassLoader();
public RmiServer() throws RemoteException {
super();
}
public void putClassData(String name, byte[] b) throws RemoteException {
loader.putClassData(name, b);
}
public Object instantiate(String className) throws RemoteException {
try {
Class clazz = loader.loadClass(className);
return clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
throw new RemoteException(e.getMessage());
}
}
続く
0604デフォルトの名無しさん
NGNGpublic static void main(String[] args) {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
ClassRepository obj = new RmiServer();
Naming.rebind("///RmiServer", obj);
System.out.println("RmiServer bound in registry");
} catch (Exception e) {
System.out.println("RmiServer err: " + e.getMessage());
e.printStackTrace();
}
}
}
0605デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGpackage net2ch.client;
import java.io.*;
import java.rmi.*;
import net2ch.ClassRepository;
public class RmiClient {
public static void main(String[] args) {
System.setSecurityManager(new RMISecurityManager());
try {
File f = new File("bin/net2ch/client/Adder.class");
byte[] b = new byte[((int)f.length())];
InputStream is = new FileInputStream(f);
is.read(b);
ClassRepository repository = (ClassRepository) Naming.lookup("///RmiServer");
repository.putClassData("net2ch/client/Adder", b);
Object object = repository.instantiate("net2ch/client/Adder");
int x = ((Adder)object).add(3,5);
System.out.println("x = " + x);
} catch (Exception e) {
e.printStackTrace();
}
}
}
0608デフォルトの名無しさん
NGNGpackage net2ch.client;
import java.io.Serializable;
public class Adder implements Serializable {
public int add(int a, int b) {
return a + b;
}
}
0609デフォルトの名無しさん
NGNGそこまで説明しないぞ。
あと今回のはリモートメソッドの呼び出しはやっていないから、
本当の意味では宿題の答えになってない。
リモートメソッド呼び出しまでやってほしいなら、
俺をその気にさせろ。
0611588
NGNG/ ヽ___/ ヽ
/ 井\ l___l /\
| 井 ● | | ● | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
へ | へ ヽ / | < >>608の続きまだ〜?
\\ \ \\ ヽ/ / \_____________
チン \\ .> \\ ヽ
チン \\/ \\ _ |
\ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ / ̄ ヽ / _
\回回回回回/ ̄ ̄ヽ / ̄ ̄ /|
\___/ ヽ____/ / |
/ |
/ |
0612デフォルトの名無しさん
NGNGなぜまずいかわかったか?
0613デフォルトの名無しさん
NGNG3つのファイルを入れ替えるぞ。
サーバ側はClassRepository.javaとRmiServer.javaだ。
クライアント側はRmiClient.javaだ。
0614デフォルトの名無しさん
NGNGpackage net2ch;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface ClassRepository extends Remote {
public void putClassData(String name, byte[] b) throws RemoteException;
public int instantiate(String classname) throws RemoteException;
public void destroy(int oid) throws RemoteException;
public Object invoke(int oid, String methodName, Class[] parameterTypes, Object[] args) throws RemoteException;
}
0615デフォルトの名無しさん
NGNGpackage net2ch;
import java.lang.reflect.Method;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
import java.util.*;
public class RmiServer extends UnicastRemoteObject implements ClassRepository {
private RemoteClassLoader loader = new RemoteClassLoader();
int nextOid = 1;
private Map repository = new HashMap();
public RmiServer() throws RemoteException {
super();
}
public void putClassData(String name, byte[] b) throws RemoteException {
loader.putClassData(name, b);
}
public int instantiate(String className) throws RemoteException {
try {
Class clazz = loader.loadClass(className);
Object o = clazz.newInstance();
repository.put(new Integer(nextOid), o);
return nextOid++;
} catch (Exception e) {
e.printStackTrace();
throw new RemoteException(e.getMessage());
}
}
続く
0616デフォルトの名無しさん
NGNGpublic void destroy(int oid) throws RemoteException {
repository.remove(new Integer(oid));
}
public Object invoke(int oid, String methodName, Class[] parameterTypes, Object[] args) throws RemoteException {
try {
Object o = repository.get(new Integer(oid));
Method m = o.getClass().getMethod(methodName, parameterTypes);
return m.invoke(o, args);
} catch (Exception e) {
e.printStackTrace();
throw new RemoteException(e.getMessage());
}
}
続く
0617デフォルトの名無しさん
NGNGpublic static void main(String[] args) {
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
ClassRepository obj = new RmiServer();
Naming.rebind("///RmiServer", obj);
System.out.println("RmiServer bound in registry");
} catch (Exception e) {
System.out.println("RmiServer err: " + e.getMessage());
e.printStackTrace();
}
}
}
0618デフォルトの名無しさん
NGNGpackage net2ch.client;
import java.io.*;
import java.rmi.*;
import net2ch.ClassRepository;
public class RmiClient {
public static void main(String[] args) {
System.setSecurityManager(new RMISecurityManager());
try {
File f = new File("bin/net2ch/client/Adder.class");
byte[] b = new byte[((int) f.length())];
InputStream is = new FileInputStream(f);
is.read(b);
ClassRepository repository = (ClassRepository) Naming.lookup("///RmiServer");
repository.putClassData("net2ch/client/Adder", b);
int o = repository.instantiate("net2ch/client/Adder");
Object x = repository.invoke(o, "add",
new Class[] { int.class, int.class },
new Object[] { new Integer(3), new Integer(5)});
System.out.println("x = " + x);
repository.destroy(o);
} catch (Exception e) {
e.printStackTrace();
}
}
}
0620時代は個人主義
NGNGhttp://osaka.yomiuri.co.jp/new_feature/kokoro/jyuku06.htm
社会福祉法人「いのちの電話」の斎藤友紀雄事務局長は、「『いじめ』は
世界中で起きていますが、日本の場合、その一番大きな原因は、異質なも
のを認めないという精神文化に根ざしていると思います。偏差値教育や核
家族化によって孤独を強いられた子どもたちは、必死に自分の居場所を求
めるのですが、性格や能力が集団と調和しない子は、集団から排除されて
しまう。つまり、村意識が働いて、村八分にされてしまうのです」と語る。
<差別いじめをなくそう>
日本国憲法(国のあり方を定めた法)は、個人主義を定めています。
それは、戦前、全体主義だったわが国が、悲惨な戦争に突入し敗戦したと
いう苦い経験の反省に基づきます。
別にみなが一緒じゃなくてもいいでしょ?
みなが一緒じゃないと安心できない集団がいて、その集団が
異質分子を排斥しようとする。
0621時代は個人主義
NGNGA型は仲間を作ろうとする時、自分と価値観やリズムが同じ人ばかりを引
き寄せて、波長の合わない人々を避けてしまう傾向があります。そこには、A型
の、周囲に波風を起こしたくない、できるだけ安定した環境を作っておきたい、と
いう思いが働くからです。そんな風にしているうちに、気がついてみたらA型ば
かりの集団になっていた、ということはよくあります。
価値観がある程度同じ方向に向かっていることは大切なことですが、あまり同じ
ような考えの人ばかりが集まることは危険です。和気合いあいのムードにすっ
かり慣れて、「井の中の蛙」になってしまう恐れがあるからです。
A型は、周囲と協調して現状を安定させたい面と、常に向上心を持って現状を
脱皮したい面の両方を、バランスよく保っていくことで、上手に成長していくので
す。
自分と違う考えの人は、衝突も激しく起こるけれど、自分に良い刺激を与え、視
野を広げることにもなるということを考えてみて下さい。
また、人間関係にもけじめをつけようとするA型は、お客と店員など、立場で態
度を大きく変えたりすることがありますが、行き過ぎれば、やはり好ましくない行
動表現に見えます。
0622デフォルトの名無しさん
NGNGな自然数とし,乱数で生成するものとする.
ハッシュ関数を何種類か用いて,それらを比較せよ.
この問題を誰かといてください。
0623デフォルトの名無しさん
NGNG教官から、ハッシュ関数の例を与えられなかったのか?
0624デフォルトの名無しさん
NGNGはい、与えられなかったんです。
0625デフォルトの名無しさん
NGNGじゃ、そこだけは自分で考えろ。
0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNGはい、わかりました。がんばってみます。
0628デフォルトの名無しさん
NGNGpublic class HashTable{
//テスト用関数
public static void main(String args[]){
HashFunction[] functions = new HashFunction[]{new FooHashFunction(),new BarHashFunction()...};
//FooHashFunction implements HashFunctionなどは君が作ってくだせえ
int seed =/*擬似乱数が毎回同じ値を出すように、適当な数字を与えてくだせえ*/;
for(int i = 0 ; i < functions.length;i++){
java.util.Random rand = new java.util.Random(seed);
HashTable table = new HashTable(function[i]);
//ここでrand.nextInt()を1000回put
//1000回putしたテーブルの内部状態をレポートとして出力
System.out.println(table.toString());
}
}
private java.util.List[] chains = new java.util.ArrayList[/*適当なチェイン数*/];
private HashFunction function;
public HashTable(HashFunction function){this.function = function;}
public void put(int index,int value){/*値挿入*/}
public String toString(){/*状態ダンプ*/}
}
public interface HashFunction{public int hashCode(int value);}
ココから先は、自分でやってくれないかなあ…と淡い期待。ねむいし。
0629デフォルトの名無しさん
NGNGint hashcode = function.hashCode(value);
int index = hashcode/chains.length;
if(chains[index] == null)
chains[index]= new java.util.ArrayList();
chains[index].add(value);
}
0630デフォルトの名無しさん
NGNG本当にありがとうございました。自分ではぜんぜんわからなかったので、本当に助かりました。
またわからないことがあったらここに来るかもしれないのでまたその時はよろしくお願いします。
0631デフォルトの名無しさん
NGNG//どんなレポートがほしいかによるので、それにしたがって自作してください
StringBuffer buf = new StringBuffer();
buf.append(function.getClass().getName()+"による結果\n");
for(int i = 0 ; i < chains.length;i++)
buf.append("chains["+i+"]="+chains[i]+"\n");
return buf.toString();
}
眠いので超テヌキ。
0632デフォルトの名無しさん
NGNG宿題ならこれで充分かモナ。
STEP3:HashFunctionの各種実装作成
…がんばれ。
これでコンパイルとおるかどうかは確認してないので、勘弁ね。
今適当に書いただけだから。
0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNGホント)int index = hashcode%chains.length;
ウエエエン。俺はなんて馬鹿なんだ・・・鬱山車脳。
0635デフォルトの名無しさん
NGNGどう変更したらうまくいくのか教えてもらえませんか?以下のプログラムをアプリ
ケーションにしたいのですが、やり方がさっぱりわかりません。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Typing extends Applet {
private Color mColor; // 現在の色
private int number; //今打っている文字は何文字目?
private int Textnum; //出題する問題番号取得用
private int typenum; //総タイプ数
private int missnum; //ミスタイプ数
static Dimension d; //領域のサイズ取得用
private String[] Text = {"class","private","public","void","int"};
public void init() {
Dimension d = getSize();
typenum = 0;
missnum = 0;
getNextText();
// キーイベントを扱うため,キーリスナを登録.
addKeyListener(new MyKeyListener());
}
0636635
NGNGDimension d = getSize(); // 描画色を設定して,問題を描画.
for(int i=0;i<Text[Textnum].length();i++){
if (i<number){ g.setColor(Color.red);
} else { g.setColor(Color.black); }
g.drawString(""+Text[Textnum].charAt(i),(i*6)+10, d.height/2);
}
g.drawString("Type :"+Integer.toString(typenum),10,10);
g.drawString("Miss :"+Integer.toString(missnum),10,20);
}// 文字を取得
public char getChar() {
return Text[Textnum].charAt(number);
}
public void incNumber() {
number = number + 1;
if (number==Text[Textnum].length()){
number = 0;
getNextText();
}
repaint();
} // 打った文字数を増加
0637635
NGNGTextnum = 0;
do Textnum = (int)(Math.random()*10);
while (Textnum>=Text.length);
}
public void inctype() { typenum = typenum + 1; repaint(); }
public void incmiss() { missnum = missnum + 1; repaint(); }
}// Typingアプレット用のリスナクラス
class MyKeyListener implements KeyListener {
// キーが押されたときの処理
public void keyPressed(KeyEvent e) {
// キーイベントを発生したオブジェクトを取り出す.
Typing Tp = (Typing)e.getSource();
// 押されたキーの文字を取り出す.
char ch = e.getKeyChar();
Tp.inctype(); //タイプ文字数を増やす
// 押されたキーと次に打つべき文字が等しいか?
if (ch == Tp.getChar()) {
Tp.incNumber();
} else { Tp.incmiss(); }//間違えていたらミス数を増やす。
} // その他のキーイベントには対応しない.
public void keyReleased(KeyEvent e) { }
public void keyTyped(KeyEvent e) { }
}
0638デフォルトの名無しさん
NGNGJavaソースファイルとHTMLファイルを作りました。
JavaソースファイルをMS−DOSプロンプトでコンパイルしました。
そして、アプレットビューアでHTMLファイルを開きました。
MS−DOSプロンプトに
xxx>appletviewer tt33.html・・・(1)
とやって。
WWWブラウザでtt33.htmlファイルを開くには
MS−DOSプロンプトに
どういうコマンド名を使えばいいのでしょうか?
0639デフォルトの名無しさん
NGNG0640638
NGNGブラウザはIE5.5を使用しているのですが、
コマンド名は>>638の(1)のようないいまわしでは
どう記入すればいいんでしょか?
0641デフォルトの名無しさん
NGNG普通にIEのアドレス欄に
「C:\・・・・\tt33.html」で、いいのじゃ
0642デフォルトの名無しさん
NGNGありがとうございました。
おかげでファイルを開くことができました。
0643デフォルトの名無しさん
NGNGpublic static void main(String args[]){
java.awt.Frame f = new java.awt.Frame();
Typing t = new Typing();
f.add(t);
t.init();
f.show();
}
表示するだけなら、こんなmainを追加すればいいんじゃないのかな。
0644635
NGNGレスありがとうございます。
それはそのプログラムを付け足せば、ほかをいじらなくてもアプリケーションとして
成り立つということでしょうか。できれば、プログラム全体をアプリケーション
に書き換えたいのですが、今現在ネットで調べながら、やってますが、お手上げ状態
です。
0645デフォルトの名無しさん
NGNGそだよ。
このメインだとJVMの停止方法がないので、それは自分で探してくり。
0647デフォルトの名無しさん
NGNG<p align="center">
<applet
code="ImageScroll.class" width=600 height=150>
<param name=backcolor value="255,255,255">
<param name=backimage value="haikei2.gif">
<param name=image value="sakura.jpg">
<param name=either value="1">
<param name=speed value="10">
</applet>
上記のプログラムのImageScroll.classファイルを開きたいのですが、
ダブルクリックをしても、右クリックをして「開く」を選択しても、
「有効なWin32アプリケーションではありません」
というメッセージが返ってくるだけで開くことができません。
どうすればよいのですか。
0648デフォルトの名無しさん
NGNGバイナリエディタでも使えば?
0649デフォルトの名無しさん
NGNG「逆コンパイラ Java」でグーグル検索しる。
0650デフォルトの名無しさん
NGNG開くのに成功したら、何が起こることを期待している?。
0651デフォルトの名無しさん
NGNG今さらながらだが、この質問って 初心者スレの
コイツ?↓
471 名前:デフォルトの名無しさん 投稿日:03/08/07 23:26
1度閉じたJavaのソースプログラムを組んだファイルの開き方を教えて下さい。
1度閉じた.classファイルや.javaファイルの開き方がわかりません
0652デフォルトの名無しさん
NGNGJSPで2つのテキストボックスに入力された2つの日付
(例 20030815 のように8桁の数字:String型)
について
1.テキストボックス1に入力された日付と
2に入力された日付を比べて、
時間的に 1<2 が成立したら true
だめなら false を返すメソッドを作成しなさい。
まず比較するまえに、nullチェックをしてください。
2.2つの日付の差をとるメソッドを作成しなさい。
JSPからパッケージを呼び出す方法を取りたいので、
Servletでお願いします。
0653山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0654デフォルトの名無しさん
NGNG上記サンプルのコンパイルはできるのですが、実行すると
Exception in thread "main" java.lang.NoClassDefFoundError: ViewFile
と言われます。classpathとかいろいろいじったのですがうまくいきません。
誰か教えて。JREは1.4.1_04です。
0655デフォルトの名無しさん
NGNGすいません。解決しました。
他のスレで聞いちゃいました。。。
0656デフォルトの名無しさん
NGNG削除をする際の情報として、「削除されるのは親からみて左右どちらの子か?」と
「削除対象はいくつの子を持っているか?」を知りたいんですが
「親から見て左右どちらの子が削除されたか」を得る方法がわかりません
Cでやった時は、親のメンバleftもしくはrightへのポインタを持っていたのですが
こういうことはJavaでは無理でしょうか?
leftの指す要素へのポインタではなくて、そのleftそのものを指したいんです。
つまりCで言うところのダブルポインタってやつでしょうか?
0657デフォルトの名無しさん
NGNGはぐ、はぐはぐはぐ
はぐはぐ?はぐはぐはぐ
はぐはぐはぐ・・・はぐw
0658デフォルトの名無しさん
NGNGCM見てないやつはわかんねーよ
おれは、笑ったけどな
カゴメ、野菜乳酸菌飲料「Hug Hug(はぐはぐ)」発売
カゴメ(社長:喜岡浩二)は、野菜乳酸菌飲料『Hug Hug(はぐはぐ)』を、4月22日(火)より東北、関東・東海・北陸地区にて新発売いたします
0659デフォルトの名無しさん
NGNG文面からするとCの理解も間違ってるような..
JAVAでもできるけどソース無いと間違いを指摘できないよ。
0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNGpublic node left;
public node right;
}
0662デフォルトの名無しさん
NGNG書いたらいいです
0663デフォルトの名無しさん
NGNGpublic node right
の意味がわかりません
0664デフォルトの名無しさん
NGNGparentNode.left = new node();
parentNode.right = new node();
parentNode.left = null;
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNGString [] str1 = new String[]{ "001", "005", "006" };
String [] str2 = new String[]{ "001", "002", "003", "004", "005", "006", "007", "008" };
というような配列が2つありましてこれをstr1とstr2で比較して
OK:str2[0]
NG:str2[1]
NG:str2[2]
.
.
NG:str2[7]
というような表示プログラムを作るというのですが
表示の内容(str2のみ)がだぶらないようにということで作っているのですが
うまくいきません・・・
どのように書けば簡潔になりますでしょうか、お願いします
0668デフォルトの名無しさん
NGNG(1) 結果の途中を省略するな。
(2) 問題をそのまま書け。
0669デフォルトの名無しさん
NGNG大変失敬いたしました,長くなってしまいますが
(1)
OK:str2[0];
NG:str2[1];
NG:str2[2];
NG:str2[3];
OK:str2[4];
OK:str2[5];
NG:str2[6];
NG:str2[7];
です
(2)の問題ですが
下記(さっきの配列ね)の配列をstr1とstr2を比較して
同じ要素のものにはOKを、残りのものにはNGを付けて表示しなさい
その際にstr2の内容は全て表示しなさい
っていう担当御手製のプリントの一文です
0670デフォルトの名無しさん
NGNGfor (int i = 0; i < str2.length; ++i) {
String result = "NG";
for (int j = 0; j < str1.length; ++j) {
if (str1[j].equals(str2[i]) {
result = "OK";
break;
}
}
System.out.println(result + ":str2[" + i + "]");
}
0671デフォルトの名無しさん
NGNGfor (int i = 0; i < str2.length; ++i) {
String result = "NG";
for (int j = 0; j < str1.length; ++j) {
if (str1[j].equals(str2[i])) {
result = "OK";
break;
}
}
System.out.println(result + ":str2[" + i + "]");
}
0672デフォルトの名無しさん
NGNGの御仁ありがとうございます!
うまくいきました
自分がへたれなのでfor文で回すときにi++ や j++
などの後付けでしか物考えれないからだめなんですね・・・
参考になりました。
0673デフォルトの名無しさん
NGNGまあがんがれ
0674デフォルトの名無しさん
NGNGList list = Arrays.asList(str1);
for(int i=0;i<str2.length;i++)
System.out.println((list.contains(str2[i])?"OK":"NG")+":str2["+i+"]"));
4行ですね。
0675デフォルトの名無しさん
NGNGなるほど。 一歩進んで効率を考えるなら、
import java.util.*;
HashSet set = new HashSet(Arrays.asList(str1));
for(int i=0;i<str2.length;i++)
System.out.println((set.contains(str2[i])?"OK":"NG")+":str2["+i+"]"));
あるいは、
import java.util.*;
Arrays.sort(str1);
for(int i=0;i<str2.length;i++)
System.out.println((Arrays.binarySearch(str1,str2[i])>=0?"OK":"NG")+":str2["+i+"]"));
はどうよ。
■ このスレッドは過去ログ倉庫に格納されています