我正在制作一个java移动应用程序来显示人们的引用。它将有超过18000个报价,按人数和报价数量分类。我的应用程序的用户将输入该人员的人员编号和报价编号。 (两个单独的数字)。我应该使用嵌套的switch case还是if else语句?或者还有另一种方法吗?也许不是每个引号的字符串,而是使用引号(每人1个文本文件)制作文本文件n使用单个开关案例来获取人物转到行号。那个人的文本文件?对于正在运行的移动设备,哪种方法会更快?提前致谢! :)
答案 0 :(得分:7)
切换,但这不是最好的方法。 你应该使用一个数据库,但是如果你不喜欢那个写一个程序来为每个人创建一个文件,然后列出这里的引号如britneyspears.txt
无论媒体如何构成,克里斯蒂娜·阿奎莱拉和我都是朋友。不要像对待小女孩一样对待我。
英格兰是我最喜欢的地方之一。粉丝们真是太疯狂了。
每天晚上,我都要读一本书,这样我的思绪就会停止思考我所强调的事情。
让您的程序从目录和列表名称中查找文件,然后可以加载文件并将其拆分为字符串。使用数据库是可取的,但速度要快得多。
答案 1 :(得分:3)
都不是。
请使用数据库!如果你有数字(id!),你会发现这个报价因索引而迅速变亮。
答案 2 :(得分:1)
您可以按需加载报价文件并缓存其报价以便在同一会话中使用,例如:
public class Quotes {
Hashtable cache;
public Quotes() {
cache = new Hashtable();
}
public String getQuote(int person, int quoteNumber) {
if (!cache.containsKey(new Integer(person))) {
try {
loadQuoteFile(person);
} catch (IOException e) {
// Invalid person / file - do what you will
}
}
String[] quotes = (String[])cache.get(new Integer(person));
if (quoteNumber < 0) return quotes[0];
if (quoteNumber >= quotes.length) return quotes[quotes.length - 1];
return quotes[quoteNumber];
}
private void loadQuoteFile(int person) throws IOException {
String[] quotes;
// Load the file
// Parse into strings using linebreaks as the delimiter
cache.put(new Integer(person), quotes);
}
}
无论如何,您可能还需要文本文件方法,除非您热衷于为包含所有引用数据的类编写或生成代码 - 例如一个String[][]
,个人和报价编号作为索引,另一个String []包含人名 - 如果你有足够的内存,这是另一个选项。从这样的结构中获取特定的引用只是使用给定的数字asarray索引(在你去的时候执行范围追踪)。