LinkedList倒序遍历

public List<Integer> getNewsFeed(int userId) {
List<Integer> res = new ArrayList<>(); ListIterator<Map.Entry<Integer, Integer>> iter = new ArrayList<Map.Entry<Integer, Integer>>(tuiwen.entrySet()).listIterator(tuiwen.size());
HashSet<Integer> myFollowee = follow.get(userId); while(iter.hasPrevious()) {
Map.Entry<Integer, Integer> entry = iter.previous();
if(entry.getValue() == userId || (myFollowee != null && myFollowee.contains(entry.getValue()))) {
res.add(entry.getKey());
if (res.size() == 10) break;
} } return res;
}
public class Traverse {

    public static void main(String[] args) {

        //循环list
List<Integer> dataList = new ArrayList<>();
dataList.add(1);
dataList.add(2);
dataList.add(4);
dataList.add(3);
System.out.println(dataList); //方式一: foreach
for(Integer data: dataList) {
System.out.print(data + " ");
}
System.out.println(); //方式二,for 下标
for(int i = 0; i < dataList.size(); i ++) {
System.out.print(dataList.get(i) + " ");
}
System.out.println(); //方式三:迭代器
Iterator<Integer> listIter = dataList.iterator();
while(listIter.hasNext()) {
Integer data = listIter.next();
System.out.print(data + " ");
}
System.out.println(); //循环set
HashSet<Integer> dataSet = new HashSet<>();
dataSet.addAll(dataList);
System.out.println(dataSet); //方式一:foreach
for(Integer data: dataSet) {
System.out.print(data + " ");
}
System.out.println(); //方式二:迭代器
Iterator<Integer> setIter = dataSet.iterator();
while(setIter.hasNext()) {
System.out.print(setIter.next() + " ");
}
System.out.println(); //循环映射
HashMap<Integer, Integer> dataMap = new HashMap<>();
dataMap.put(1,1);
dataMap.put(2,2);
dataMap.put(3,4); //方法一:迭代器
Iterator<Map.Entry<Integer, Integer>> entryIter = dataMap.entrySet().iterator();
while(entryIter.hasNext()) {
Map.Entry<Integer, Integer> entry = entryIter.next();
System.out.println(entry.getKey() + " " + entry.getValue());
} //方法一:倒序迭代器
ListIterator<Map.Entry<Integer, Integer>> reEntryIter = new ArrayList<Map.Entry<Integer, Integer>>(dataMap.entrySet()).listIterator(dataMap.size());
while(reEntryIter.hasPrevious()) {
Map.Entry<Integer, Integer> entry = reEntryIter.previous();
System.out.println(entry.getKey() + " " + entry.getValue());
} //方法二:foreach
for(Map.Entry<Integer, Integer> entry: dataMap.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
} }
}

java 遍历的更多相关文章

  1. java 遍历map 方法 集合 五种的方法

    package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...

  2. java 遍历文件夹里的文件

    Java遍历文件夹的2种方法: A.不使用递归: import java.io.File; import java.util.LinkedList; public class FileSystem { ...

  3. JAVA 遍历文件夹下的所有文件

    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...

  4. java遍历树(深度遍历和广度遍历

    java遍历树如现有以下一颗树:A     B          B1               B11          B2               B22     C          C ...

  5. java遍历Hashmap/Hashtable的几种方法

    一>java遍历Hashtabe: import java.util.Hashtable; import java.util.Set; public class HashTableTest { ...

  6. JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)

    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...

  7. java 遍历List 和 Map的几种方法

    java遍历List 1.(性能最差) for(String tmp:list) { //System.out.println(tmp); } 2.(性能最好) for(int i = 0; i &l ...

  8. java 遍历Map的四种方式

      java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1 ...

  9. Java 遍历指定文件夹及子文件夹下的文件

    Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @p ...

  10. Java遍历Map键、值。获取Map大小的方法

    Map读取键值对,Java遍历Map的两种实现方法 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值 import java.util.HashM ...

随机推荐

  1. STM32笔记——Power Controller(PWR)

    The device requires a 1.8 to 3.6 V operating voltage supply (VDD). An embedded linear voltage regula ...

  2. icon 的前生今世 & iconfont 的晋级之路

      布吉岛为啥起了个这么文(dou)艺(bi)的名字,话不多说,开始总结

  3. 03_springboot2.x日志处理

    1.日志框架 ​ 市场上存在非常多的日志框架.JUL(java.util.logging),JCL(Apache Commons Logging),Log4j,Log4j2,Logback.SLF4j ...

  4. C++的注释

    ### 1.2 注释 **作用**:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码 **两种格式** 1. **单行注释**:// 描述信息  - 通常放在一行代码的上方,或者一条语句的 ...

  5. <day001>存储到Mysql、mongoDB数据库+简单的Ajax请求+os模块+进程池+MD5

    任务1:记住如何存储到Mysql.mongoDB数据库 ''' 存储到Mysql ''' import pymysql.cursors class QuotePipeline(object): def ...

  6. <selenium>selenium基础操作

    from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.c ...

  7. FineUI使用记录

    @{ ViewBag.Title = "Grid/Grid"; var F = Html.F();} @section body { @(F.Grid().IsFluid(true ...

  8. 2019-8-31-dotnet-特性-DynamicallyInvokable-是用来做什么的

    title author date CreateTime categories dotnet 特性 DynamicallyInvokable 是用来做什么的 lindexi 2019-08-31 16 ...

  9. Python全栈开发:运算符

    1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算:

  10. C++函数模板&类模板

    函数模板 模板概念及语法 主要目的,简化代码,减少重复代码.基本语法格式:  template<class T> 或者 template<typename T> //末尾不加分 ...