gpt4 book ai didi

Java:从 Hashtable> 获取对象值

转载 作者:行者123 更新时间:2023-12-01 14:07:21 27 4
gpt4 key购买 nike

我在 Hashtable<Integer,Hashtable<String,Object>> 中编码了一些对象属性,其中:

  • Integer是主要的关键Hashtable (代表对象编号)
  • 每个 Hashtable<String,Object>分别代表属性name (String)和属性(property)value(Object)

我想将所有属性值放入 ArrayList 中(或数组...)包含属性值,然后想要访问每个 Object 。我怎样才能做到这一点?

最佳答案

如果您只需要一个用于此目的的列表,Maxim 的解决方案非常好,或者您可以创建一个自定义类来实现集合并在内部管理哈希表和对象。如果您需要在程序的许多地方使用它,我喜欢第二种方法。

例如,您可以修改此类并添加自定义类作为 Element T,该自定义类具有链接到字符串键的所有属性和 hastable,并在此类中添加通过键名称进行搜索的自定义方法(请原谅我的英语):

  public class NList<T> implements Iterable<T> //, List<T>
{
private boolean synchron;
public List<T> list;

public NList(boolean synchron)
{
this(15, synchron);
}

public NList(int initialCapacity, boolean synchron)
{
this.synchron = synchron;
this.list = synchron ? new Vector<T>(initialCapacity) : new ArrayList<T>(initialCapacity);
}

public NList(Collection<T> c, boolean synchron)
{
this.synchron = synchron;
this.list = synchron ? new Vector<T>(c) : new ArrayList<T>(c);
}

public final boolean isSynchronized()
{
return synchron;
}

//@Override
public final boolean add(T element)
{
return list.add(element);
}

//@Override
public final void add(int index, T element)
{
list.add(index, element);
}

//@Override
public final T remove(int index)
{
return list.remove(index);
}

//@Override
public final List<T> subList(int fromIndex, int toIndex)
{
return list.subList(fromIndex, toIndex);
}

//@Override
@SuppressWarnings("unchecked")
public final T[] toArray()
{
return (T[])list.toArray();
}

//@Override
public final T get(int index)
{
return list.get(index);
}

//@Override
public final int size()
{
return list.size();
}

//@Override
public final boolean isEmpty()
{
return list.isEmpty();
}

//@Override
public final void clear()
{
list.clear();
}

@Override
public final Iterator<T> iterator()
{
return list.iterator();
}

//@Override
public final boolean contains(Object element)
{
return list.contains(element);
}

//@Override
@SuppressWarnings("hiding")
public final <T> T[] toArray(T[] a)
{
return list.toArray(a);
}

//@Override
public final boolean remove(Object element)
{
return list.remove(element);
}

//@Override
public final boolean containsAll(Collection<?> c)
{
return list.containsAll(c);
}

//@Override
public final boolean addAll(Collection<? extends T> c)
{
return list.addAll(c);
}

//@Override
public final boolean addAll(int index, Collection<? extends T> c)
{
return list.addAll(index, c);
}

//@Override
public final boolean removeAll(Collection<?> c)
{
return list.removeAll(c);
}

//@Override
public final boolean retainAll(Collection<?> c)
{
return list.retainAll(c);
}

//@Override
public final T set(int index, T element)
{
return list.set(index, element);
}

//@Override
public final int indexOf(Object o)
{
return list.indexOf(o);
}

//@Override
public final int lastIndexOf(Object o)
{
return list.lastIndexOf(o);
}

//@Override
public final ListIterator<T> listIterator()
{
return list.listIterator();
}

//@Override
public final ListIterator<T> listIterator(int index)
{
return list.listIterator(index);
}
}

关于Java:从 Hashtable<Integer,Hashtable<String,Object>> 获取对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18800999/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com