相关疑难解决方法(0)

用于自定义对象列表的java中的Foreach循环

我有一个类型为Room的ArrayList(我的自定义对象)定义如下

ArrayList<Room> rooms = new ArrayList<Room>();
Run Code Online (Sandbox Code Playgroud)

然后在ArrayList中添加一系列对象后,我想通过它们查看各种内容.我不是java的敏锐用户,但我知道在许多其他编程语言中,foreach循环将是最简单的方法.

经过一番研究后,我发现以下链接提示下面的代码. 每个'循环的Java'如何工作?

for(Iterator<String> i = someList.iterator(); i.hasNext(); ) {
  String item = i.next();
  System.out.println(item);
}
Run Code Online (Sandbox Code Playgroud)

但据我所知,这不能用于自定义对象的Arraylist.

可以,如果是这样,我如何为自定义对象的ArrayList实现foreach循环?或者我怎么能处理每个项目?

java foreach arraylist

5
推荐指数
3
解决办法
9万
查看次数

以名称String形式访问Java变量

ArrayList用名字声明了10 秒arraylist1,arraylist2依此类推.

我想在for循环中动态更改变量名称:

for (int i = 1; i < 5; i++)
{
   arraylist + (i).clear();
   //arraylist1.clear();
   //arraylist2.clear();
   //arraylist3.clear();
   //arraylist4.clear();
   //arraylist5.clear();

}
Run Code Online (Sandbox Code Playgroud)

可能吗?如果是这样的格式是什么?

java

4
推荐指数
1
解决办法
150
查看次数

处理集合对象的增强的for循环行为

因为我学习Java ..我遇到了以下代码

public static void main(String[] args) {
  ArrayList<String> a = new ArrayList<>();
  a.add("1");
  a.add("2");
  for(String str: a){
  a = new ArrayList<>();
  System.out.println(str);
  }
 }
Run Code Online (Sandbox Code Playgroud)

我猜到了答案

1 null(因为引用现在指向另一个对象)

但答案是

1 2

我无法理解增强for循环的行为.

java

4
推荐指数
1
解决办法
61
查看次数

将ArrayList <Integer>转换为int []的最快方法

可能重复:
如何在Java中将List <Integer>转换为int []?

在Java中,低于最快的解决方案:

public convert(ArrayList<Integer> IntegerList) {

    int s = IntegerList.size();
    int[] intArray = new int[s];
    for (int i = 0; i < s; i++) {
        intArray[i] = IntegerList.get(i).intValue();
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays int arraylist

3
推荐指数
2
解决办法
2万
查看次数

如何在一行中打印阵列的所有内容?

public class Myname {
  public static void main(String args[]){

    Letter s = new Letter(); s.setCaracter("s");
    Letter e = new Letter(); e.setCaracter("e");
    Letter a = new Letter(); a.setCaracter("a");
    Letter r = new Letter(); r.setCaracter("r");
    Letter y = new Letter(); y.setCaracter("y");
    Letter o = new Letter(); o.setCaracter("o");
    Letter u = new Letter(); u.setCaracter("u");
    Letter n = new Letter(); n.setCaracter("n");
    Letter g = new Letter(); g.setCaracter("g"); 

    Letter name[] = new Letter[10];

    name[0] = s;
    name[1] = e;
    name[2] = a;
    name[3] = r; …
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
1
解决办法
2798
查看次数

为什么我的方法返回一个空数组?

我正在使用foreach循环迭代一个空数组,并用对象填充它."Case"是一个具有多种方法和属性的类.

我的代码看起来像这样:

public class Test {

private Case [] list = new Case[5];

public Case [] test(){
    for(Case myCase : list){
        myCase = new Case(); 
    }

    return list; //This list contains 5 nulls, but should contain five "Case" objects.
}

public static void main(String[] args){
    Test myTest = new Test();
    myTest.test();
}}
Run Code Online (Sandbox Code Playgroud)

当我希望它包含5个实例化的"Case"对象时,从我的方法返回的列表包含5个空值.我怀疑这可能是某种可见性问题,但我无法弄清楚.

java arrays foreach null object

3
推荐指数
1
解决办法
54
查看次数

":"在这个Java语句中意味着什么?

for (Season time : Season.values() )
system.out.println (time+ "\t" + time.getSpan());
Run Code Online (Sandbox Code Playgroud)

我看到了使用枚举的一个例子:.这是什么意思?

java foreach loops for-loop

2
推荐指数
1
解决办法
6555
查看次数

Iterable:如果没有什么可迭代的,iterator() 是否可以返回 null?

实现接口的对象Iterable必须具有具有以下签名的方法:

Iterator<T> iterator()
Run Code Online (Sandbox Code Playgroud)

o 作为Iterable,此代码安全吗?

while(o.iterator().hasNext()) { ... }
Run Code Online (Sandbox Code Playgroud)

换句话说,iterator()如果没有什么可迭代的,可能会返回 null?

编辑:

1-正如你们中的一些人指出的,每次执行 o.iterator() 时返回的迭代器都是不同的。很公平!我必须承认,我在写问题时忘记了这一点。

假设这一行被重写:

Iterator<String> it = o.iterator();
....
....
while(it.hasNext() {...}
Run Code Online (Sandbox Code Playgroud)

2- 正如你们中的一些人所指出的,当 Iterable.iterator() 的文档说:“返回一组 T 类型元素上的迭代器”时,返回 null 是一种不好的编程习惯。

然而,我的问题是,Java API 文档中的某些“契约”是否直接或间接阻止返回 null。对我来说,“返回 T 类型元素集合上的迭代器”并不能阻止返回 null。我可能错了。

根据您的回答和其他研究得出的结论

总体而言:Java API 没有办法说明迭代器值是否可以为 null,除非在文档中明确说明。在本例中,没有说明任何内容,但明智的做法是认为 Java API 方法永远不会返回 null 迭代器值。这对于个人编写的 API 可能会有所不同。

  • 文档中没有任何内容阻止返回值为空(例如@NotNull)
  • 在 Javadoc 中,当 null 也是预期的时候,许多 @Return 都是明确的
  • 这个问题一般是关于空返回值的,很有趣。
  • 我发现了一种描述 API 的语言的尝试,尽管它是针对 .NET

java null iterator

2
推荐指数
1
解决办法
2万
查看次数

为什么我可以在Java中的forEach循环中迭代数组?

通常的想法是,如果这个结构不是Iterable,我就不能用forEach迭代一些结构.但为什么我可以在Java中迭代数组呢?数组不是Iterable.

MyClass[] array = {new MyClass("a"), new MyClass("b")};

for (MyClass c : array) {
    System.out.println(c);
}
Run Code Online (Sandbox Code Playgroud)

java iterator

2
推荐指数
1
解决办法
111
查看次数

在性能方面,在 Java 中执行一个 for 多个操作或多个 fors 每个操作有什么影响?

我担心提高源代码的可读性,它涉及通过将庞大的方法分解为更小的(简洁的)方法来减少它们的大小。所以,简而言之,假设我有一个非常单一的方法,可以做很多不同的事情,例如:

public void verHugeMethod(List<Person> people) {
    for (Person person : people) {
        totalAge += person.getAge();
        totalHeight += person.getHeight();
        totalWeight += person.getWeight();
        // More calculations over class variables...
    }
}
Run Code Online (Sandbox Code Playgroud)

我想将方法​​更改为:

public void calculateTotalAge(List<Person> people) {
    for (Person person : people) {
        totalAge += person.getAge();
    }
}

public void calculateTotalHeight(List<Person> people) {
    for (Person person : people) {
        totalHeight += person.getHeight();
    }
}

public void calculateTotalWeight(List<Person> people) {
    for (Person person : people) {
        totalWeight += person.getWeight();
    }
}
// More …
Run Code Online (Sandbox Code Playgroud)

java time-complexity

2
推荐指数
1
解决办法
66
查看次数

标签 统计

java ×10

foreach ×3

arraylist ×2

arrays ×2

iterator ×2

null ×2

for-loop ×1

int ×1

loops ×1

object ×1

time-complexity ×1