Java 如何将>1000个字符串放入一个数组并使其可搜索?

Java 如何将>1000个字符串放入一个数组并使其可搜索?,java,android,string,Java,Android,String,我正在学习自己编写Java和Android代码,我正在为Android创建一个应用程序 这是一种分析动词的语言应用语法 我现在有一个1000个动词的列表,每个动词都有自己的形式,我一直在寻找将它们存储为字符串的方法,但不想使用太多的字符串或太长的数组 我考虑的是字符串数组,但是一个包含1000个字符串的数组不确定这是否真的实用 我想在excel中创建我需要的东西,然后使用这个excel作为存储,应用程序可以使用它在其中进行搜索,并在文本视图中显示在那里找到的结果,但同样不确定这是否适用于Andr

我正在学习自己编写Java和Android代码,我正在为Android创建一个应用程序

这是一种分析动词的语言应用语法

我现在有一个1000个动词的列表,每个动词都有自己的形式,我一直在寻找将它们存储为字符串的方法,但不想使用太多的字符串或太长的数组

我考虑的是字符串数组,但是一个包含1000个字符串的数组不确定这是否真的实用

我想在excel中创建我需要的东西,然后使用这个excel作为存储,应用程序可以使用它在其中进行搜索,并在文本视图中显示在那里找到的结果,但同样不确定这是否适用于Android

假设我有下面3个不定式动词

Akl ktv hlk 现在第一个动词可以有另外两种形式Nakl-Hikel,其他动词也有自己的形式

我想做的是,当用户键入动词时,无论是过去还是现在,例如Akled past或hikeling present,系统都将通过删除结尾,然后使用剩下的内容(例如:Akled-->akl)来显示其他形式,在这种情况下,如果是Akled,则系统将使用akl并显示nakl-hikel

例如:

用户在文本框中键入akled并按analysis 系统将执行以下操作: 子串动词只有akl 然后根据这个动词将显示其他形式,那就是nakl-hikel。
这在大量动词的情况下可行吗?假设每个动词只有2种其他形式,因此基于此,1000个动词有2000种其他形式。

不要在内存中加载太多字符串。字符串在内部表示为字符数组,而Java中的字符类型需要2个字节。因此,如果每20个字符保留100000个字符串,那么100000个元素的字符串[]所占用的总内存将为100000*20*2=4000000字节=4MB。JVM堆大小通常以千兆字节为单位,所以您不应该担心是否应该在内存中加载这么多字符串。即使加载10倍于上述值,即1000000个字符串,也只会占用40MB的内存

您可以在android中创建自己的字符串资源文件,您可以在其中存储应用程序上使用的所有字符串:

上面的链接将向您展示要使用的格式、在android项目中放置字符串文件的位置以及如何使用它

在这个链接上,您有一个如何从资源中获取字符串数组的示例:

我会使用HashMap,每个动词的每种形式都有一个条目。使用屈折形式作为键,不定式作为值。您是否尝试使用一个属性文件,将所有字符串存储在该文件中,然后在需要时将其加载到应用程序中?@DawoodibnKareem谢谢您的提示,我会考虑并尝试它。@Papulzavala您能给我举个例子吗,我不明白什么是属性文件?这是一个在android studio中创建的文件吗?.属性文件是文件。如果您存储了大量名称=值格式的字符串,这在java中很常见,在这里您可以看到几个示例:,我记得android只有一个string.xml文件,您应该在其中存储所有字符串,然后你可以用他们的ID来获取这些字符串谢谢你的解释。