• Java-Iterator遍历集合


    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    public class TestIterator {
    	public static void main(String[] args) {
    		//testIteratorList();
    		//testIteratorSet();
    		testIteratorMap();
    	}
    
    	public static void testIteratorList() {
    		List<String> list = new ArrayList<>();
    		list.add("aa");
    		list.add("bb");
    		list.add("cc");
    
    		for (Iterator<String> item = list.iterator(); item.hasNext();) {
    			String temp = item.next();
    			System.out.println(temp);
    		}
    	}
    	
    	public static void testIteratorSet(){
    		Set<String> set=new HashSet<>();
    		set.add("11");
    		set.add("22");
    		set.add("33");
    		
    		for(Iterator<String> iter=set.iterator();iter.hasNext();){
    			String temp=iter.next();
    			System.out.println(temp);
    		}
    	}
    	
    	//第一种
    	public static void testIteratorMap(){
    		Map<Integer,String> map=new HashMap<>();
    		map.put(100, "aa");
    		map.put(400, "bb");
    		map.put(500, "cc");
    		
    	   Set<Entry<Integer,String>> ss=map.entrySet();
    	   for(Iterator<Entry<Integer,String>> iter= ss.iterator();iter.hasNext();){
    		   Entry<Integer,String> temp=iter.next();
    		   System.out.println(temp.getKey()+"--"+temp.getValue());
    	   }
    	   
    	   //第二種
    	   Set<Integer> keySet=map.keySet();
    	   for(Iterator<Integer> iter=keySet.iterator();iter.hasNext();){
    		   Integer key=iter.next();
    		   System.out.println(key+"-------"+map.get(key));
    	   }
    	}
    }
    

      TreeSet实现排序:

    import java.util.Set;
    import java.util.TreeSet;
    
    public class TestTreeSet {
    public static void main(String[] args) {
    	Set<Integer> set=new TreeSet<>();
    	set.add(300);
    	set.add(200);
    	set.add(600);
    	
    	for(Integer m:set)
    		System.out.println(m);
    	
    	
    	Set<Emp2>  set2 = new TreeSet<>();
    	set2.add(new Emp2(100,"张三",3000));
    	set2.add(new Emp2(50,"李四",2000));
    	set2.add(new Emp2(150,"王五",8000));
    	set2.add(new Emp2(30,"赵六",20000));
    	
    	for(Emp2 m:set2){
    		System.out.println(m);
    	}
    }
    }
    class Emp2  implements Comparable<Emp2>  {
    	int id;
    	String name;
    	double salary;
    	
    	public Emp2(int id, String name, double salary) {
    		super();
    		this.id = id;
    		this.name = name;
    		this.salary = salary;
    	}
    
    	@Override
    	public String toString() {
    		return  "id:"+id+",name:"+name+",salary:"+salary;
    	}
    	
    	@Override
    	public int compareTo(Emp2 o) {		//负数:小于,0:等于,正数:大于
    		
    		if(this.salary>o.salary){
    			return 1;
    		}else if(this.salary<o.salary){
    			return -1;
    		}else{
    			if(this.id>o.id){
    				return 1;
    			}else if(this.id<o.id){
    				return -1;
    			}else{
    				return 0;
    			}
    		}
    	}
    }
    

      TreeMap实现排序:

    import java.util.Map;
    import java.util.TreeMap;
    
    public class TestTreeMap {
    	public static void main(String[] args) {
           Map<Integer,String> treeMap1=new TreeMap();
           treeMap1.put(20, "aa");
           treeMap1.put(3, "bb");
           treeMap1.put(6, "cc");
           
           for(Integer key:treeMap1.keySet()){
        	   System.out.println(key+"----"+treeMap1.get(key));
           }
           
           Map<Employee,String> treeMap2=new TreeMap<Employee,String>();
           treeMap2.put(new Employee(100,"張三",5000), "111");
           treeMap2.put(new Employee(200,"李四",500), "222");
           treeMap2.put(new Employee(150,"王五",6000), "333");
           
           //按照key遞增的方式排序
           for(Employee key:treeMap2.keySet()){
        	   System.out.println(key+"---"+treeMap2.get(key));
           }
    	}
    }
    
    class Employee implements Comparable<Employee>{
    	int id;
    	String name;
    	double salary;
    	public Employee(int id, String name, double salary) {
    		super();
    		this.id = id;
    		this.name = name;
    		this.salary = salary;
    	}
    	@Override
    	public String toString() {
    		return  "id:"+id+",name:"+name+",salary:"+salary;
    	}
    	@Override
    	public int compareTo(Employee o){
    		if(this.salary>0)return 1;
    		else if(this.salary<o.salary)return -1;
    		else{
    			if(this.id>o.id)return 1;
    			else if(this.id<o.id) return -1;
    			else return 0;
    		}
    	}
    }
    

      

  • 相关阅读:
    android中statusbar高度的问题
    int和short做循环计数器时的效率问题
    解决Rectangle Packing问题【原创】
    10个android开源项目(转)
    自动编译.9.png文件
    通过wifi调试android程序
    HBase 性能优化笔记
    [转载]定制CentOS 6.3 自动安装盘
    region split时metascan出现regioninfo为空
    Google Dremel 原理 如何能3秒分析1PB
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/11794408.html
Copyright © 2020-2023  润新知