二维数组android-实现和添加值-android Java

二维数组android-实现和添加值-android Java,android,arrays,Android,Arrays,我不确定我是否应该使用二维数组或其他东西。我有一个词,比如苹果,我对这个词有两个定义,例如我喜欢吃苹果,苹果是红色的 我想用第一句或第二句来显示这个词 简单地说,我想将这个词与两个定义联系起来,并轻松地显示出来。我该怎么做呢?使用列表地图,它更容易导航,例如Map words=new HashMap() 用法: List<String> appleDefs = new ArrayList<>(); appleDefs.add("def one"); appleDefs.

我不确定我是否应该使用二维数组或其他东西。我有一个词,比如苹果,我对这个词有两个定义,例如我喜欢吃苹果,苹果是红色的

我想用第一句或第二句来显示这个词


简单地说,我想将这个词与两个定义联系起来,并轻松地显示出来。我该怎么做呢?

使用列表地图,它更容易导航,例如
Map words=new HashMap()

用法:

List<String> appleDefs = new ArrayList<>();

appleDefs.add("def one");
appleDefs.add("def two");

words.put("Apple", appleDefs);
ArrayList<WordObj> words = new ArrayList<>();

ArrayList<String> appleSentences = new ArrayList<>();
appleSentences.add("I like eating the apple");
appleSentences.add("An apple is red");

words.add(new WordObj("Apple", appleSentences));
List appleDefs=new ArrayList();
添加(“定义一”);
添加(“定义二”);
单词.put(“苹果”,appleDefs);

使用列表地图,它更容易导航,例如
地图单词=新的HashMap()

用法:

List<String> appleDefs = new ArrayList<>();

appleDefs.add("def one");
appleDefs.add("def two");

words.put("Apple", appleDefs);
ArrayList<WordObj> words = new ArrayList<>();

ArrayList<String> appleSentences = new ArrayList<>();
appleSentences.add("I like eating the apple");
appleSentences.add("An apple is red");

words.add(new WordObj("Apple", appleSentences));
List appleDefs=new ArrayList();
添加(“定义一”);
添加(“定义二”);
单词.put(“苹果”,appleDefs);

如果你只有两句话,你可以创建一个类来存储信息,例如

public class WordObj {
    private String word;
    private String sentence1, sentence2;


    public WordObj(String word, String definition1, String definition2) {
        this.word = word;
        this.sentence1 = definition1;
        this.sentence2 = definition2;
    }

    public String getWord() {
        return word;
    }

    public String getSentence1() {
        return sentence1;
    }

    public String getSentence2() {
        return sentence2;
    }

}
然后像这样使用它:

ArrayList<WordObj> words = new ArrayList<>();

words.add(new WordObj("Apple", "I like eating the apple", "An apple is red"));
ArrayList words=new ArrayList();
添加(新单词“苹果”,“我喜欢吃苹果”,“苹果是红色的”);
编辑: 对于数量可变的句子:

public class WordObj {
    private String word;
    private ArrayList<String> sentences;

    public WordObj(String word, ArrayList<String> sentences) {
        this.word = word;
        this.sentences = sentences;
    }

    public String getWord() {
        return word;
    }

    public ArrayList<String> getSentences() {
        return sentences;
    }

    public String getSentence(int position) {
        return sentences.get(position);
    }
}
公共类WordObj{
私有字符串字;
私刑;
PublicWordObj(字符串、数组列表语句){
这个单词=单词;
这个句子=句子;
}
公共字符串getWord(){
返回词;
}
公共数组列表getSequences(){
返回句子;
}
公共字符串get句子(int位置){
返回句子。获取(位置);
}
}
用法:

List<String> appleDefs = new ArrayList<>();

appleDefs.add("def one");
appleDefs.add("def two");

words.put("Apple", appleDefs);
ArrayList<WordObj> words = new ArrayList<>();

ArrayList<String> appleSentences = new ArrayList<>();
appleSentences.add("I like eating the apple");
appleSentences.add("An apple is red");

words.add(new WordObj("Apple", appleSentences));
ArrayList words=new ArrayList();
ArrayList appleSentences=新的ArrayList();
添加(“我喜欢吃苹果”);
添加(“一个苹果是红色的”);
添加(新单词obj(“苹果”,applesentents));

如果你只有两句话,你可以创建一个类来存储信息,例如

public class WordObj {
    private String word;
    private String sentence1, sentence2;


    public WordObj(String word, String definition1, String definition2) {
        this.word = word;
        this.sentence1 = definition1;
        this.sentence2 = definition2;
    }

    public String getWord() {
        return word;
    }

    public String getSentence1() {
        return sentence1;
    }

    public String getSentence2() {
        return sentence2;
    }

}
然后像这样使用它:

ArrayList<WordObj> words = new ArrayList<>();

words.add(new WordObj("Apple", "I like eating the apple", "An apple is red"));
ArrayList words=new ArrayList();
添加(新单词“苹果”,“我喜欢吃苹果”,“苹果是红色的”);
编辑: 对于数量可变的句子:

public class WordObj {
    private String word;
    private ArrayList<String> sentences;

    public WordObj(String word, ArrayList<String> sentences) {
        this.word = word;
        this.sentences = sentences;
    }

    public String getWord() {
        return word;
    }

    public ArrayList<String> getSentences() {
        return sentences;
    }

    public String getSentence(int position) {
        return sentences.get(position);
    }
}
公共类WordObj{
私有字符串字;
私刑;
PublicWordObj(字符串、数组列表语句){
这个单词=单词;
这个句子=句子;
}
公共字符串getWord(){
返回词;
}
公共数组列表getSequences(){
返回句子;
}
公共字符串get句子(int位置){
返回句子。获取(位置);
}
}
用法:

List<String> appleDefs = new ArrayList<>();

appleDefs.add("def one");
appleDefs.add("def two");

words.put("Apple", appleDefs);
ArrayList<WordObj> words = new ArrayList<>();

ArrayList<String> appleSentences = new ArrayList<>();
appleSentences.add("I like eating the apple");
appleSentences.add("An apple is red");

words.add(new WordObj("Apple", appleSentences));
ArrayList words=new ArrayList();
ArrayList appleSentences=新的ArrayList();
添加(“我喜欢吃苹果”);
添加(“一个苹果是红色的”);
添加(新单词obj(“苹果”,applesentents));
xml格式:

<Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Get Sentence" />

在JAVA中:

private View view;
     private HashMap<String, ArrayList<String>> words;
            private Boolean isClicked = false;
    @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            view = inflater.inflate(R.layout.your_layout, container, false);
            initView();
            return view;
        }

        private void initView() {
    final Button button1 = (Button) view.findViewById(R.id.button1);
    button1.setOnClickListener(this);
    words = new HashMap<>();
            final ArrayList<String> appleDefs = new ArrayList<>();

            appleDefs.add("def one");
            appleDefs.add("def two");

            words.put("Apple", appleDefs);
        }

        @Override
        public void onClick(View view) {
            switch (view.getId()) {
     case R.id.button1:
                    clickCheck();
                    break;
    }
    }
 private void clickCheck() {
        if (isClicked) {
            if (words.get("Apple").size() > 0) {
                Log.d(TAG, words.get("Apple").get(1));
            }
            isClicked = false;

        } else {
            if (words.get("Apple").size() > 0) {
                Log.d(TAG, words.get("Apple").get(0));
            }
            isClicked = true;
        }
    }
私有视图;
私有哈希映射词;
私有布尔值isClicked=false;
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.your_布局,容器,false);
initView();
返回视图;
}
私有void initView(){
final Button button1=(Button)view.findViewById(R.id.button1);
button1.setOnClickListener(此);
words=新HashMap();
final ArrayList appleDefs=新的ArrayList();
添加(“定义一”);
添加(“定义二”);
单词.put(“苹果”,appleDefs);
}
@凌驾
公共void onClick(视图){
开关(view.getId()){
案例R.id.button1:
单击检查();
打破
}
}
私有void clickCheck(){
如果(已单击){
if(words.get(“苹果”).size()>0){
Log.d(TAG,words.get(“苹果”).get(1));
}
isClicked=false;
}否则{
if(words.get(“苹果”).size()>0){
Log.d(TAG,words.get(“苹果”).get(0));
}
isClicked=true;
}
}
xml格式:

<Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Get Sentence" />

在JAVA中:

private View view;
     private HashMap<String, ArrayList<String>> words;
            private Boolean isClicked = false;
    @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            view = inflater.inflate(R.layout.your_layout, container, false);
            initView();
            return view;
        }

        private void initView() {
    final Button button1 = (Button) view.findViewById(R.id.button1);
    button1.setOnClickListener(this);
    words = new HashMap<>();
            final ArrayList<String> appleDefs = new ArrayList<>();

            appleDefs.add("def one");
            appleDefs.add("def two");

            words.put("Apple", appleDefs);
        }

        @Override
        public void onClick(View view) {
            switch (view.getId()) {
     case R.id.button1:
                    clickCheck();
                    break;
    }
    }
 private void clickCheck() {
        if (isClicked) {
            if (words.get("Apple").size() > 0) {
                Log.d(TAG, words.get("Apple").get(1));
            }
            isClicked = false;

        } else {
            if (words.get("Apple").size() > 0) {
                Log.d(TAG, words.get("Apple").get(0));
            }
            isClicked = true;
        }
    }
私有视图;
私有哈希映射词;
私有布尔值isClicked=false;
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.your_布局,容器,false);
initView();
返回视图;
}
私有void initView(){
final Button button1=(Button)view.findViewById(R.id.button1);
button1.setOnClickListener(此);
words=新HashMap();
final ArrayList appleDefs=新的ArrayList();
添加(“定义一”);
添加(“定义二”);
单词.put(“苹果”,appleDefs);
}
@凌驾
公共void onClick(视图){
开关(view.getId()){
案例R.id.button1:
单击检查();
打破
}
}
私有void clickCheck(){
如果(已单击){
if(words.get(“苹果”).size()>0){
Log.d(TAG,words.get(“苹果”).get(1));
}
isClicked=false;
}否则{
if(words.get(“苹果”).size()>0){
Log.d(TAG,words.get(“苹果”).get(0));
}
isClicked=true;
}
}

2D阵列听起来应该可以工作。当然,您可以随时找到替代方案(例如
Map
)。2D阵列听起来应该可以工作。当然,你总是可以找到替代方案(比如
Map
),看起来不错。如何从列表映射中获取值??例如,若我点击按钮,我会首先得到它