1

そのため、現在、次のようなユーザー入力を受け取るプログラムを作成しています。

  • ファーストネームは「ジェフ」
  • 姓の「ヘンダーソン」
  • 彼らとの電話番号
  • 銀行口座に保管する金額

そして、それをすべて Linked List に保存します。

この同様の情報を持つ別の人を追加した場合、リンクリストにどのように保存され、両方の個人情報に別々にアクセスできるようになりますか?

現在、これを使用して、新しいユーザーを入力するときにすべてのストレージを確立しています。

private final Scanner keyboard;

private final LinkedList<String> firstName;
private final LinkedList<String> lastName;
private final LinkedList<String> teleNumber;
private final LinkedList<String> accountBalance;

public bankdata() 
{
    this.keyboard = new Scanner(System.in);
    this.firstName = new LinkedList<String>();
    this.lastName = new LinkedList<String>();
    this.teleNumber = new LinkedList<String>();
    this.accountBalance = new LinkedList<String>();
}

keyboard.next();ユーザー入力を読み取ってから、作成した add メソッドを使用して、各リンク リストに情報を格納する予定です。

それがセットアップされる方法は、次のようなすべてのオブジェクト変数のリンクされたリストがあることです:

  • ファーストネームのリンクリスト
  • 最後のリンクされたリスト
  • 電話番号のリンクリスト
  • 口座残高の連結リスト

ある特定の人に関連付けられた情報を呼び出したい場合、別のリンクされたリストにある場合にそのユーザーのすべてのものを見ることができるように、そのユーザー情報を要求するときにどうすればよいですか?

4

3 に答える 3

2

ここで重要なのは、独自のデータ構造を作成することです。LinkedList についてもう少し調べてみてください。オンラインのほぼすべてのリンクされたリストの例が役に立ちます。

ヒント: ノードのクラスを作成し、各人物に関するすべての情報をそのノードに保存します。

編集:答えを完成させるためだけに: Javaでリンクされたリストデータ構造を作成するにはどうすればよいですか?

編集 2 : 編集した OP に基づいて、4 つの LinkedLists を持ち、1 人のすべての情報を見つけたいと思います。人の名前で検索すると仮定します (そうでない場合でも、プロセスは同じです)。また、正しい対応ノードには1人分の情報が格納されているものとする。したがって、person14 つのリストすべての最初のノードにすべての情報があり、person2すべてのノードが「インデックス」1 にあります。

そのため、名前を格納する LinkedList の検索を開始し、名前が見つかったらすぐに停止します (見つからない場合はエラーをスローします)。また、見たノードの数を追跡します。これは、他のすべてのリストの情報を取得するために必要なインデックスになります。

ここで、forループを使用して、残りの 3 つのリストのそれぞれを適切な回数トラバースし、検出された値を返します。

于 2013-03-27T21:26:17.650 に答える
0

クラス内のすべてのデータをグループ化してから、Hashtable をデータ構造として使用する方が簡単です。Hashtable についてオンラインで多くのリソースを見つける必要があります。 -example-tutorial-code.html . 入力の取得について..変数の数が固定されているため、配列に格納してから Arrays.toList() を使用してリストにキャストし、おそらくループ内でスイッチを使用して変数を初期化できます。ハッシュテーブル構造に代わるものがあることに注意してください。ただし、後でデータを取得する必要があり、データが大きくなる可能性があるため、お勧めします。

于 2013-03-27T21:36:28.527 に答える
0

これは典型的なプリミティブ オブセッションです。

オブジェクトを使用してデータを保存する必要があります。より柔軟で使いやすいでしょう。

于 2013-03-27T22:08:19.453 に答える