私の経費を数えるアプリケーションを作成したいと思います。私は旅行のための配列リストを作成しました。そして今、カテゴリーの配列リストと各カテゴリーの別の配列リストを作成したいと思います。たとえばtrip1には3つのカテゴリがあります:a、b、c。すべてのカテゴリで、私は自分の経費を持っています。どのように私はトリップ配列リストの各値の配列リストを作るのですか?アンドロイドスタジオの別の配列リストの各値の配列リストを作成する方法
答えて
データベースのような構造を作成しています。ここにいくつかのヒントがあります:
1)構造に矛盾が生じやすいので、データを重複させたくありません。
これは意味:expanses
リストとcategories[cat]
リスト
2の両方で、あなたの広がりを追加しないでください)たぶん、いくつかのMaps
3を使用)私が行っていたデータに
を集約するために、いくつかのクラスを使用しますこれは次のようになります:
import java.util.*;
public class Trip {
/** An item in the expanses list */
static class Item {
final String item;
final int cost;
public Item(String item, int cost) {
this.item = item;
this.cost = cost;
}
@Override public String toString() {
return this.item + " (" + this.cost + "$)";
}
}
/** A map with category as key and the associed list of items as value */
Map<String,List<Item>> expanses;
public Trip() {
this.expanses = new HashMap<String,List<Item>>();
String[] categories = {"food","clothes","souvenir"};
for (String cat: categories) { // init the categories with empty lists
this.expanses.put(cat, new ArrayList<Item>());
}
}
/** Register a new expanse to the trip. */
public void add(String item, int cost, String category) {
List<Item> list = this.expanses.get(category);
if (list == null)
throw new IllegalArgumentException("Category '"+category+"' does not exist.");
list.add(new Item(item, cost));
}
/** Get the expanses, given a category.
* @return a fresh ArrayList containing the category elements, or null if the category does not exists
*/
public List<Item> getItems(String category) {
List<Item> list = this.expanses.get(category);
if (list == null)
return null;
return new ArrayList<Item>(list);
}
/** Get the expanses, given a category.
* @return a fresh ArrayList containing all the elements
*/
public List<Item> getItems() {
List<Item> list = new ArrayList<Item>();
for (List<Item> l: this.expanses.values()) // fill with each category items
list.addAll(l);
return list;
}
/** Get the total cost, given a category. */
public int getCost(String category) {
List<Item> list = this.expanses.get(category);
if (list == null)
return -1;
int cost = 0;
for (Item item: list)
cost += item.cost;
return cost;
}
/** Get the total cost. */
public int getCost() {
int cost = 0;
for (List<Item> l: this.expanses.values())
for (Item item: l)
cost += item.cost;
return cost;
}
// lets test this structure
public static void main(String[] args) {
Trip trip1 = new Trip();
trip1.add("apple", 10, "food");
trip1.add("cheese", 15, "food");
trip1.add("hat", 30, "clothes");
System.out.println(trip1.getItems("food"));
System.out.println(trip1.getCost("food"));
System.out.println();
System.out.println(trip1.getItems());
System.out.println(trip1.getCost());
}
}
しかし、私は最初のアクティビティで旅行をしたいが、2番目のアクティビティで経費を追加したいのですが、これをどうやって行うのですか? –
と、最初のアクティビティでリストビューが必要なので、どのようにすべての旅行の配列リストを作成しますか? –
アクティビティとは何ですか?カテゴリを意味しますか? – User9123
は旅行(それに関連したそれらの値を持つ)オブジェクトは、その後、リストの中に代わりのように多くのリスト
を作るあなたはいくつかのクラス
class Trip {
private ArrayList[Category] categories = new ArrayList();
public void addCategory(Category c) {
categories.add(c);
}
public void getCategory(int index) {
categories.get(index);
}
}
class Category {
private ArrayList[Expense] expenses = new ArrayList();
public void addExpense(Expense e) {
expenses.add(e);
}
}
class Expense {
private String name;
private int amount;
public Expense(name, amount) {
this.name = name;
this.amount = amount;
}
}
を持っている必要があることを入れて作ってみますあなたのコードの他の部分で、あなたはあなたがTrip
内部カテゴリのあなたのArrayList
がになりたいかもしれません
Trip africa = new Trip();
africa.addCategory(new Category());
africa.getCategory(0).addExpense(new Expense("apple", 10));
のようなものを行うことができますの場合、カテゴリに名前を付けることができます。
- 1. Matlab:配列リストを作成
- 2. 配列リストを使用して別の配列リストのインデックスを指示する
- 3. 配列リストの文字列値を連結する方法
- 4. カスタム配列リストの配列のインデックスを見つける方法...?
- 5. オブジェクトをある配列リストから別の配列リストに移動する
- 6. ブーイング配列リストのチャンニング値
- 7. 配列からリストを作成する
- 8. JS配列 - 配列の作成方法
- 9. 別のリストの値からJSON配列を保持するリストを作成する
- 10. 配列リストの配列リストに項目を追加する
- 11. 文字列配列のリストを作成するLinqクエリエラー
- 12. R:リストから行列の配列を作成する
- 13. 配列リストの配列の印刷方法
- 14. リストから多次元配列を作成する方法は?
- 15. 別のクラスの配列リストへのアクセス
- 16. Python配列へのnp配列のリスト
- 17. オブジェクトの配列対リストの配列
- 18. 単一配列をサブセット化して配列のリストを作成するR
- 19. 現在配列/配列リスト/リスト
- 20. 配列リストではなく配列リストをソートする方法は?
- 21. 別の配列のインデックス値を使用して配列を作成する
- 22. Java:別の配列のプロパティから配列を作成する
- 23. リストのナンシー配列
- 24. C#で配列リストを作成
- 25. Pythonで配列のリストを作る
- 26. Gridviewのセルの値と配列のリスト
- 27. レルム内のNSDataオブジェクトのリスト(配列)を作成する方法は?
- 28. 配列リストの配列をJavaの2d配列
- 29. Javaで2つのリスト/配列の値を引く方法は?
- 30. Javascriptの別の配列値から配列値をフィルタリングする方法は?
あなたのリストの内容についてもっと明確にしてください...あなたは例を挙げることができますか? – User9123
すべての旅行のアレイリストと、カテゴリのアレイリストと、費用のアレイリストが必要です。例えば、私はリンゴを食べるとリンゴは10ドルのコストがかかるので、私はカテゴリーの食べ物とリンゴに追加したい、10。私は各旅行のカテゴリと費用の配列のリストが必要です。 –