2016-05-24 11 views
-4

私はかなり新しいJavaですが、質問がありました: StringをArrayListに一定期間保存することは可能でしょうかそれともHashMapに格納しなければならないのですか?HashMapに格納すれば、それを作る方法が分かりませんので、一定の期間保管することができます。特定の期間HashMapに文字列を格納することは可能ですか

+1

問題を解消してみてください:何かをHashMapに配置する方法を知っていますか?あなたはそれから何かを取る方法を知っていますか?一定の時間が経過した後でアクションを実行する方法を知っていますか(そのフレーズをオンラインですばやく検索するといくつかのヒットが見つかります)それらはあなたの出発ブロックです。これにはほぼ確実にマルチスレッドが関わっていることに注意してください。それ自体は複雑なトピックです.Java(またはプログラミング全般)を初めて使う人にとっては、この問題はうまくいくものではありません。 – yshavit

+1

FYIあなたは多くの意味を持たないので(あなたが「HashMap」がこの問題を解決する印象を与えたのはなぜですか?)、あなたが行った研究やこれを試したことははっきりしません-far。あなたが実際に達成しようとしていることについてのより多くの文脈を加えて、あなたがこれらのクラスについて理解していることの詳細について、これはより良い質問に役立ちます。詳細については[質問する](http://stackoverflow.com/help/how-to-ask)を参照してください。 – dimo414

答えて

-1

文字列を配列リストに格納することができます。リスト、マップ、キューなどのJavaコレクションの文字列は、文字列、Integer、Doubleなどをユーザー定義クラスのオブジェクトとともに格納することができます。リストを使用します。listObj = new ArrayList(yourArrayListSize);

1

注:ハッシュマップ/アレイリストには、XY問題のような時間がかかります。おそらくあなたの究極の目標を達成するためのより良い方法があります。しかし、あなたが主張するなら、ここにはどのようにしていますか?

javax.swing.Timerと呼ばれるものがあります。時間を測定したい場合には非常に便利です。

まずは、ArrayListを作成してみましょう:

かなり簡単です
final ArrayList<String> arr = new ArrayList<>(); 

arr.add("Hello"); 

、必要はありません説明します。

はその後、我々は、タイマーを作成します。

final Timer t = new Timer(1000, new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     t.stop(); 
     arr.remove("Hello"); 
    } 
}); 

ここは少し少し複雑です。 Timerのコンストラクタには2つの引数があります。 1つ目は、タイマーの遅延(ミリ秒単位)です。ここでは1000を書いたので、1秒後に配列から項目を削除します。第2引数は、遅延後に行うことです。この場合、タイマーを最初に停止するように指示します(これは一度だけ実行するためです)、アイテムを削除します。

タイマーを作成した後、開始もちろんタイマー!

t.start(); 

そして、BOOM!アレイは1秒間だけ"Hello"を保持します!

関連する問題