zoukankan      html  css  js  c++  java
  • 《Java编程思想》笔记

    第十章

    (1)当生成一个内部类的对象时。此对象 与制造他的外围对象之间就有了一种联系,所以它能訪问其外围对象的全部成员,而不须要不论什么特殊条件。

    此外,内部类还拥有其它外围类的全部元素的訪问权。

    (2).this 假设你须要生成对外部类对象的应用。能够使用外部类的名字后面紧跟原点和this。

    .new 假设想要创建某个内部类的对象,你必须外部类的一个实例后加上.new

    如:DotNew dn = new DotNew();

    DotNew.Inner dni = dn.new Inner;

    (3)记住。

    接口的全部成员自己主动被设置为public();

    (4)假设定义一个匿名内部类或者局部内部类。而且希望它使用一个在其外部定义的对象,那么编译器会要求參数引用是final的。


    第十一章

    (1)collection衍生3中容器。list,set。queue。List,它以特定的顺序保存一组数据;set,元素不能反复。queue,仅仅同意在容器的一端插入对象,并从还有一端移除对象。

    Map在每一个槽内保存了两个对象。即检和与子相关联的值。

    (2)HashList、HashMap是最快获取元素的方式

    TreeList、TreeMap存储顺序依照字母升序

    LinkedHashSet、LinkedHashMap存储依照被加入的顺序

    (3)迭代器Iterator有next(),hasnext(),remove()三种方法

    子类ListIterator更加强大,有next().hasnext(),nextIndex().previous(),hasprevious(),previoueIndex()方法,

    另外,listIterator能够使用set()方法替换当前节点,能够通过调用listIterator(n)产生一个一開始就指向n号元素的ListIterator。


    ListIterator实现倒叙:

    import java.util.*;
    import xpf.test;
    
    public class ListIteration {
    	public  static  void  main(String args[]){
    		List<Integer> s =new  ArrayList<Integer>(8);
    		Collections.addAll(s,0,1,2,3,4,5,6,7);
    
    		ListIterator<Integer> it = s.listIterator();
    		it=s.listIterator(s.size()-1);
    		
    		while(it.hasPrevious()){
    			System.out.println("  "+it.previous());
    		}
    		System.out.println();	
    		
    	}
    }
    


    题目:使用String“键”和你选择的对象填充LinkedHashMap。然后从中提取键值对,键值排序,然后又一次插入此Map

    import java.util.*;
    import static org.greggordon.tools.Print.*;
    
    public class Ex24{	
    	public static void main(String[] args) {
    		Map<String,Integer> m = 
    			new LinkedHashMap<String,Integer>();
    		m.put("ten", 10);
    		m.put("nine", 9);
    		m.put("eight", 8);
    		m.put("seven", 7);
    		m.put("six", 6);
    		m.put("five", 5);
    		m.put("four", 4);
    		m.put("three", 3);
    		m.put("two", 2);
    		m.put("one", 1);
    		m.put("zero", 0);
    		println("Map to sort: " + m);
    		// temporary map to hold entrys:
    		Map<String,Integer> mTemp = 
    			new LinkedHashMap<String,Integer>();
    		// use TreeSet to sort the keySet():
    		Set<String> ss = new TreeSet<String>(m.keySet());
    		// mover sorted keys to temp map:
    		Iterator<String> itss = ss.iterator();
    		while(itss.hasNext()) {
    			String s = (String)itss.next();
    			Integer i = m.get(s);
    			m.remove(s);
    			mTemp.put(s, i);
    		}
    		// get sorted list of temp keys:
    		Set<String> ssTemp = 
    			new TreeSet<String>(mTemp.keySet());
    		// move sorted entrys back to map:
    		Iterator<String> itssTemp = ssTemp.iterator();
    		while(itssTemp.hasNext()) {
    			String s = (String)itssTemp.next();
    			Integer i = mTemp.get(s);
    			mTemp.remove(s);
    			m.put(s, i);
    		}
    		// done with temp:
    		mTemp.clear();
    		println("Sorted map: " + m);
    	}
    }	
    

    (4)priorityQueue

    仅仅保证队列首个元素是最重要的,内部其它元素不保证依照重要度排序。

    事实上它是在维护一个最大堆。

    具体可參考http://blog.csdn.net/chengyingzhilian/article/details/8078032

  • 相关阅读:
    fiddler https
    Windows Media Player 网页播放器 参数含义
    ActionScript3.0程序开发工具
    同一目录两程序引用同一个类库dll,所引发的问题
    Flash在浏览器里调试获取trace
    linux下的i2c驱动框架
    IIC原理及简单流程
    Linux操作系统下 NAND FLASH驱动程序框架
    Linux操作系统简单NOR FLASH驱动开发
    网卡驱动
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6953375.html
Copyright © 2011-2022 走看看