Java 如何创建深度表/列表并从中插入/读取数据
我想用Java创建一个表/列表,我想知道处理它的最佳方法是什么。 表的结构应如下所示:Java 如何创建深度表/列表并从中插入/读取数据,java,Java,我想用Java创建一个表/列表,我想知道处理它的最佳方法是什么。 表的结构应如下所示: Term propertyList entitiesList a1 p1=1, p2=2, p3=2 T1,T2 a2 p5=0, p4=5 ,p3=3 T2,T1 a3 p1=1 ,p4=3, p3=9 T3,T1,T2 ... a10 我有一个正好有10个术语的列表,每个术语都有一个属性
Term propertyList entitiesList
a1 p1=1, p2=2, p3=2 T1,T2
a2 p5=0, p4=5 ,p3=3 T2,T1
a3 p1=1 ,p4=3, p3=9 T3,T1,T2
...
a10
我有一个正好有10个术语的列表,每个术语都有一个属性列表(deep with key and value),属性可以在一个或多个实体中
我需要一些关于如何创建它的帮助,例如,我应该使用列表、地图、集合等吗。
如何在代码中将硬编码值作为文本添加到它们中,以及从中读取数据的最佳方式是什么,同时考虑到性能,考虑到以后我将需要对每个实体使用此方法,并查找参与每个术语的相关属性。看起来您可能具有以下结构:
class Term {
String id;
Map<String, String> properties;
List<Entity> entities; // (or Set<Entity> if no duplicates are allowed)
}
类术语{
字符串id;
地图属性;
列出实体;//(如果不允许重复,则设置)
}
但“深度”和“属性可以在一个或多个实体中”的含义并不十分清楚 所以您有了术语列表:
list
学期班
public class Term {
private String mName = "";
private Map<String, Integer> mPropertyMap = new LinkedHashMap<String, Integer>();
private List<String> mEntitiesList = new ArrayList<String>();
public Term(String name) {
mName = name;
}
public void generate(Map<String, Integer> propertyMap, List<String> entitiesList) {
mPropertyMap = propertyMap;
mEntitiesList = entitiesList;
}
public Map<String, Integer> getPropertyMap() {
return mPropertyMap;
}
public void setPropertyMap(Map<String, Integer> propertyMap) {
this.mPropertyMap = propertyMap;
}
public List<String> getEntitiesList() {
return mEntitiesList;
}
public void setEntitiesList(List<String> entitiesList) {
this.mEntitiesList = entitiesList;
}
public String getName() {
return mName;
}
public void setmName(String name) {
this.mName = name;
}
}
public class MyClass {
private List<Term> mTermList = null;
private void init() {
mTermList = new ArrayList<Term>();
}
private void addSomeTerm() {
Map<String, Integer> propertyMap = new LinkedHashMap<String, Integer>();
propertyMap.put("p1", 1);
propertyMap.put("p2", 2);
propertyMap.put("p3", 3);
List<String> entitiesList = new ArrayList<String>();
entitiesList.add("T1");
entitiesList.add("T2");
Term term = new Term("a1");
term.generate(propertyMap, entitiesList);
mTermList.add(term);
}
private String printTerms() {
StringBuilder buff = new StringBuilder();
for(Term currTerm : mTermList){
buff.append(currTerm.getName()).append(" ");
Map<String, Integer> propertyMap = currTerm.getPropertyMap();
Set<String> sets = propertyMap.keySet();
Iterator<String> itr = sets.iterator();
String key = null;
Integer value = null;
while(itr.hasNext()){
key = itr.next();
value = propertyMap.get(key);
buff.append(key + "=" + value).append(",");
}
buff.setLength(buff.length()-1); // remove last ','
buff.append(" ");
List<String> entitiesList = currTerm.getEntitiesList();
for(String str : entitiesList){
buff.append(str).append(",");
}
buff.setLength(buff.length()-1); // remove last ','
}
return buff.toString();
}
/**
* @param args
*/
public static void main(String[] args) {
MyClass m = new MyClass();
m.init();
m.addSomeTerm();
System.out.println(m.printTerms());
}
我的意思是属性可以有键,键是属性的名称和值,为什么要用类创建它?我怎样才能像表中一样添加数据呢。谢谢Java是一种面向对象的语言。不能创建类以外的数据结构。看起来你需要学习基础知识。谷歌的“甲骨文Java教程”。你能提供一些小例子,我怎样才能像我在例子中提供的那样为它添加数据。谢谢
a1 p1=1,p2=2,p3=3 T1,T2