diff options
author | Matthias Sohn <matthias.sohn@sap.com> | 2025-08-06 14:13:56 +0200 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2025-08-06 14:13:56 +0200 |
commit | 2a635383d0c0f63c79bd7df7af0c8ac4fd7c4a2b (patch) | |
tree | d2bbcd1ab5d1a5c406ebadd51559fe1deb31a3f4 /org.eclipse.jgit/src/org/eclipse/jgit/util | |
parent | 0a32120fac17af19af2dc6e76226952a7eef1a9b (diff) | |
parent | 97c257a57e59dc4247490cc328757416aa5aa84d (diff) | |
download | jgit-master.tar.gz jgit-master.zip |
* stable-7.3:
Shortcut PackWriter reuse selection when possible
Don't use Yoda style conditions to improve readability
Change-Id: Ic8ca92cfc294ca01540218151bafca889256847b
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit/util')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/util/Iterators.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/Iterators.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/Iterators.java new file mode 100644 index 0000000000..74b728bdf7 --- /dev/null +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/Iterators.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2025, NVIDIA Corporation. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Distribution License v. 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +package org.eclipse.jgit.util; + +import java.util.Iterator; + +/** + * Utility class for Iterators + * + * @since 6.10.2 + */ +public class Iterators { + /** + * Create an iterator which traverses an array in reverse. + * + * @param array T[] + * @return Iterator<T> + */ + public static <T> Iterator<T> reverseIterator(T[] array) { + return new Iterator<>() { + int index = array.length; + + @Override + public boolean hasNext() { + return index > 0; + } + + @Override + public T next() { + return array[--index]; + } + }; + } + + /** + * Make an iterable for easy use in modern for loops. + * + * @param iterator Iterator<T> + * @return Iterable<T> + */ + public static <T> Iterable<T> iterable(Iterator<T> iterator) { + return new Iterable<>() { + @Override + public Iterator<T> iterator() { + return iterator; + } + }; + } +} |