今天遇到了一个要将从后台读取的IP地址排序并取交集的问题。
刚开始想着自己写方法实现,后来得知有更简便的方法。
如下:
TreeSet为使用树来进行存储的Set接口提供了一个工具,对象按升序存储.访问和检索是很快的。在存储了大量的需要进行快速检索的排序信息的情况下,TreeSet是一个很好的选择.
import java.util.*;
public class TreeSetTest
{
public static void main(String[] args)
{
//Create a TreeSet
TreeSet ts = new TreeSet();
ts.add("192.168.10.1");
ts.add("192.168.10.1");
ts.add("192.168.10.2");
ts.add("192.168.10.1");
ts.add("191.168.10.1");
ts.add("190.168.10.1");
ts.add("191.168.22.1");
ts.add("193.168.10.1");
System.out.println(ts);
}
}
程序输出:
[190.168.10.1, 191.168.10.1, 191.168.22.1, 192.168.10.1, 192.168.10.2, 193.168.10.1]
实现了自动排序并去除了重复的元素。
接下来可以构建一个Iterator迭代器,迭代TreeSet集合中的对象。
Iterator iterator = ts.iterator();
我的最终目的是将这些数据存储到一个List中,然后在前台用Struts的【nested:iterator】标签将其中的内容打印出来。
List<String> list = new ArrayList<String>();
while(iterator.hasNext())
{
list.add((String)iterator.next());
}
需要注意的是:iterator.next()返回的是Object对象,需要强转一下。
这样,符合要求的数据就存储在了List中。