二维数组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
),看起来不错。如何从列表映射中获取值??例如,若我点击按钮,我会首先得到它