- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 ArrayList
的 ArrayList
,我需要找到一种访问元素的简单方法,以便更容易理解我已经制定了我的目标我想实现:
如上图所示,主要的 ArrayList
由 m ArrayList
组成,我希望通过使用 获取元素>get
方法从 0 到 N 个元素,其中 N 是 ArrayList1
和 ArrayList2< 的总元素
。可能会出现更多 ArrayList。
我当然可以使用两个 for 循环遍历元素,这不是我在这种情况下搜索的内容。
最佳答案
您基本上需要在新的包装类中包含 ArrayList
成员,并以不同的方式实现它们。我制作了一个示例,演示了在 get()
中计算的正确索引。
import java.util.ArrayList;
public class ListHolder<T> {
public ArrayList<ArrayList<T>> list = new ArrayList<ArrayList<T>>();
public int size() {
int size = 0;
for (int i = 0; i < list.size(); i++) {
size += list.get(i).size();
}
return size;
}
public T get(int i) {
if (i >= size())
return null;
int listIndex = 0;
int valueIndex = i;
while (valueIndex >= list.get(listIndex).size()) {
valueIndex -= list.get(listIndex++).size();
}
return list.get(listIndex).get(valueIndex);
}
}
我用什么来验证我的方法:
public static void main(String[] args)
{
ListHolder<Object> listHolder = new ListHolder<Object>();
listHolder.list.add(new ArrayList<Object>());
listHolder.list.get(0).add("hello");
listHolder.list.get(0).add("world");
listHolder.list.add(new ArrayList<Object>());
listHolder.list.get(1).add("a");
listHolder.list.get(1).add("b");
listHolder.list.get(1).add("c");
System.out.println("Size: " + listHolder.size());
System.out.println("listHolder[0]: " + listHolder.get(0)); // "hello"
System.out.println("listHolder[1]: " + listHolder.get(1)); // "world"
System.out.println("listHolder[2]: " + listHolder.get(2)); // "a"
System.out.println("listHolder[3]: " + listHolder.get(3)); // "b"
System.out.println("listHolder[4]: " + listHolder.get(4)); // "c"
System.out.println("listHolder[5]: " + listHolder.get(5)); // "null"
}
关于java - 访问 ArrayList<ArrayList<SomeObject>> 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15850201/
这两个表达式等价吗?如果是,你能解释为什么吗? (我是一名java程序员): if(!$someObject) if($someObject!==null) 谢谢 最佳答案 你可以看看 type co
我看到这段代码,找了一段时间,网上找了半天,还是没搞定。 var client = function (){ var engine = { ie: 0,
所以我有两个模型;联系和分组,并通过 NSCoder 归档/取消归档他们的数据。考虑一下: class Contact { var id: Int = default_value va
以下代码: var ResultSet= { 'ResultSetName': "Resultset1", Values: [ { Val1: 1, Val2: 2, Val3: 'SomeN
所以我正在查看一些 Java 代码并偶然发现: List l; 基本上,这个列表接受所有属于某种 SomeObject 的对象 - SomeObject 本身或其继承者。但是根据多态性,它的继承者也可
我想搜索我的代码并将 someObject.ToString() 的所有实例替换为 Convert.ToString(someObject)。 例如,如果我有: var x = someClassIn
这个问题在这里已经有了答案: 关闭 9 年前。 Possible Duplicate: is there a difference between (!object) and (object ==
我经常使用以下方法获取对象键数组: Object.keys(someobject) 我很乐意这样做。我知道 Object 是 Object 构造函数,而 keys() 是它的一个方法,而 keys()
协议(protocol)实现分为三种: 第一个: @protocol FirstProtocol ... @end @property(nonatomic, weak) id delegate; 第二
我们有使用 Spring 框架的 NamedParameterJdbcTemplate 的应用程序执行各种 JDBC 语句。此类中的大多数方法都已重载。例如,update() 的一个版本接受一个 Ma
我尝试复制window.getSelection()至someObject将其存储为对象属性以供将来重用。 我有这个代码: var selection = window.getSelection();
我有一堂这样的课: import javax.annotation.Nullable; public class Nullness { private @Nullable Object som
考虑 ASP.NET Core Web API Controller 方法的以下方法签名: public JsonResult GetById(string id); public async Tas
如何在 C# 4.0 中使用协方差将 IList 转换为 IList,其中 SomeObject 实现 ISomeInterface 我有类似以下内容 IList GetItems; IList it
someObject.$() 是什么意思? 我正在浏览 sapui5 工具包中的 tilecontainer-dbg 文件,发现了这个: var oDomRef = this.$(); or some
我正在查看github上的.net core 2.0代码,以使文章中的某些代码不混淆,并遇到this: public static IMvcBuilder AddRazorPagesOptions(
是否 Class只有一个实例是 SomeObject.class ? 这是一个函数 void f(Class arg) 是否可以只传递 SomeObject.class否则编译时错误? 最佳答案 是的
考虑以下情况: public class A { private String stringA; public String getStringA() { return
我有一个数组 List其中包含日期的升序(以及更多带有信息的字段)。该列表将分组为 List> ,这与我的主题相关。 一个List分组为 List> .在前一种情况下,只包含 1 行。 某些计算发生在
我有 public void setContacts(List contacts) { this.contacts = contacts; } 需要用反射获取这个方法,我试过了 clazz
我是一名优秀的程序员,十分优秀!