如何在 Java 中反转对象集合

此示例显示了 如何通过调用 Collections 的方法反转 LinkedList 的内容: class: Collections.reverse() 。我们选择 LinkedList 作为对象集合。相同的方法也适用于继承自 java.util.Collection。必须将 LinkedList 实例作为参数传递。此方法用于颠倒 list.

Example:

此代码处理以下三个 java 对象集合:ArrayList、LinkedList 和 Vector.

import java.util.Collections;
导入 java.util.LinkedList;

public class inverse_collection {

public static void main(String[] args) {

LinkedList llist = new LinkedList();

llist.add(1”);
llist.add(2”);
llist.add(3”);
llist.add(4”);

System.out.println(反转前:”+llist);

Collections.reverse(llist);

System.out.println(反转后:”+llist);
}
}
结果:

反转前:[1, 2, 3, 4]
反转后:[4, 3, 2, 1]
Collections.reverse() 方法不支持继承自 java.util.Set 和 java.util.Map 的集合。但是,部分解决方案是可能的:
  • 从 Set 接口创建带有集合的 ArrayList 实例,或者 Map
  • Apply Collections.reverse() 方法 ArrayList
  • Items 无法复制回原始集合。为什么?因为 Set 接口不保证插入顺序。
注意:Map 接口是一个键/值哈希表。这意味着我们只能选择反转键或值,而不会将结果复制回实现 Map 的集合中,因为它不保留元素的顺序。

TreeSet 示例:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
导入 java.util.TreeSet;

public class Intervert {

public static void main(String[] args) {

// 创建 TreeSet
TreeSet tset = new TreeSet();

// 为 treeset
tset.add(a”) 添加元素;
tset.add(b”);
tset.add(c”);

迭代器 迭代器 = tset.iterator();

// 显示 TreeSet
System.out.println(按升序排列的树集元素: ”);
while (iterator.hasNext()){
System.out.println(iterator.next());
}

List list = new ArrayList(tset);

Collections.reverse(list);

// 反向显示值
System.out.println(树集的元素顺序相反:”);
for(String s:list)
System.out.println(s);
}
}
输出:

按升序排列的树集元素: 
a
b
c
treeset 元素,顺序相反:
c
b
a