举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > java集合foreach JavaFX 集合

java集合foreach JavaFX 集合

2023-03-17 23:31 Java教程

java集合foreach JavaFX 集合

java集合foreach

Java集合foreach是Java 8中引入的一个新特性,它可以让我们更加简洁地遍历集合中的元素。它可以用来遍历数组、列表、集合和Map,并且可以使用lambda表达式来进行迭代。

foreach语法如下:

collection.forEach(element -> { 
    // do something with element 
}); 

其中collection是要遍历的集合,element是集合中的元素,->是lambda表达式的语法,{}内部是要对每个元素执行的操作。

foreach有几个优势:

  • 1. 它可以使代码更加简洁易读。
  • 2. 它可以使用lambda表达式来进行迭代,而不需要使用for循环。
  • 3. 它可以在多核CPU上并行执行多个操作,因此可以大大提高性能。

当然也有一些不足之处:

  • 1. foreach不能对集合进行修改。如果需要修改集合中的元素,则必须使用for循环或者stream API。
  • 2. foreach不能停止遍历过程。如果需要在遍历时检测到特定条件时停止遍历,则必须使用for循环或者stream API。

<

JavaFX 集合

JavaFX教程 - JavaFX集合


JavaFX中的集合由javafx.collections包定义,javafx.collections包由以下接口和类组成:

接口

接口描述
ObservableList允许我们跟踪更改的列表
ListChangeListener接收更改通知的接口
ObservableMap允许我们跟踪更改的映射
MapChangeListener从ObservableMap接收更改通知的接口

描述
FXCollections实用程序类映射到java.util.Collections
ListChangeListener.Change表示对ObservableList所做的更改
MapChangeListener.Change表示对ObservableMap所做的更改

例子

以下代码显示如何使用ObservableList,ObservableMap和FXCollections。

import java.util.ArrayList;
import java.util.List;

import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;

public class Main {

  public static void main(String[] args) {
    List<String> list = new ArrayList<String>();

    ObservableList<String> observableList = FXCollections.observableList(list);
    observableList.addListener(new ListChangeListener() {
      @Override
      public void onChanged(ListChangeListener.Change change) {
        System.out.println("change!");
      }
    });
    observableList.add("item one");
    list.add("item two");
    System.out.println("Size: " + observableList.size());

  }
}

上面的代码生成以下结果。


例2

以下代码显示了如何监听ObservableMap上的更改。

import java.util.HashMap;
import java.util.Map;

import javafx.collections.FXCollections;
import javafx.collections.MapChangeListener;
import javafx.collections.ObservableMap;

public class Main {

  public static void main(String[] args) {
    Map<String, String> map = new HashMap<String, String>();
    ObservableMap<String, String> observableMap = FXCollections
        .observableMap(map);
    observableMap.addListener(new MapChangeListener() {
      @Override
      public void onChanged(MapChangeListener.Change change) {
        System.out.println("change! ");
      }
    });
    observableMap.put("key 1", "value 1");
    map.put("key 2", "value 2");

  }
}

上面的代码生成以下结果。

例3

以下代码显示了如何找出已更改的内容。

import java.util.ArrayList;
import java.util.List;

import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;

public class Main {

  public static void main(String[] args) {
    List<String> list = new ArrayList<String>();

    ObservableList<String> observableList = FXCollections.observableList(list);
    observableList.addListener(new ListChangeListener() {
      
      @Override
      public void onChanged(ListChangeListener.Change change) {
          System.out.println("Detected a change! ");
          while (change.next()) {
              System.out.println("Was added? " + change.wasAdded());
              System.out.println("Was removed? " + change.wasRemoved());
              System.out.println("Was replaced? " + change.wasReplaced());
              System.out.println("Was permutated? " + change.wasPermutated());
              }
          }
      });
    observableList.add("item one");
    list.add("item two");
    System.out.println("Size: " + observableList.size());

  }
}

上面的代码生成以下结果。

阅读全文
以上是鳄鱼CMS为你收集整理的java集合foreach JavaFX 集合全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们