java遍历TreeSet,数据不是太多,但是只用到最后几个数据

set集合中有一些数据,只用到最后几个。找的方法是全部遍历出来,,怎么只取到最后几个数据图片说明

package test;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

/**

  • @author 熊浪
  • @创建时间2016年9月26日
  • @Email xiongl@sunline
  • @此类的作用
    */
    public class Test {
    public static void main(String[] args){
    String date="20170105";
    List list=new ArrayList();
    for (int i=0;i list.add(date);
    date=getPreDay(date);
    }
    Set set=new TreeSet(list);
    list = getListDate(set, "20170101");
    for (int i = 0,len=list.size(); i < len; i++) {
    System.out.print(list.get(i)+"\t");
    }
    }

    public static List getListDate(Set set,String date){
    List list=new ArrayList();
    String str="";
    if(set!=null && date!=null){
    Iterator it = set.iterator();
    while(it.hasNext()){
    str=it.next();
    if(str!=null && Integer.parseInt(str)>=Integer.parseInt(date)){
    list.add(str);
    }
    }
    }
    return list;
    }

    public static String getPreDay(String dateStr) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    try {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(sdf.parse(dateStr));
    calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 1);
    return sdf.format(calendar.getTime());
    } catch (Exception e) {
    return "";
    }
    }
    }

不知道你说的最后几个数字是什么意思。如果你是前序遍历,只需要最后几个数字,可以用后序遍历,那么这几个数字会最先被访问到。反之亦然。

你可以先装换数组,然后根据下表获取。不知道会省资源吗

1、你如果要找的几个数据是固定的话,可以将那几个数据放入自己新建的一个集合a中,然后再新建一个集合b
每遍历一次set取出数据的时候就遍历一次集合对比一下是不是你想要的数据,如果是的话就将这个数据放入新建的集合b中。
2、如果不是固定的,那也肯定有一些其他条件来判断是不是你想要的数据,新建一个集合b
每遍历一次set取出数据的时候就遍历一次集合对比一下是不是你想要的数据,如果是的话就将这个数据放入新建的集合b中。
3、只是纯粹的取出最后几个元素,遍历set集合前
获取set集合长度(即元素个数)。
int length =set集合长度;
int getNum =set集合长度想要获取多少个元素;
int num=0;//记录遍历次数
List list = new ArrayList();
Set set = new HashSet();

Iterator it = set.iterator();

while (it.hasNext()) {

num++;//遍历时让num自增
String str = it.next();

if(num>=(length-getNum)){
list.add(str);
}
System.out.println(str);

}