# Java编程思想(九) —— 持有对象(下)

11)Map

public class TestMap {
public static void main(String[] args) {
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
Random r = new Random(47);

//map里面为空
System.out.println(map.get(1));
for (int i = 0; i < 10000; i++) {
int j = r.nextInt(10);
Integer temp = map.get(j);
map.put( j ,temp == null ? 1 : temp+1);
}
System.out.println(map);
}
}

//result:null
//{0=994, 1=1033, 2=1010, 3=1014, 4=958, 5=1000, 6=1052, 7=980, 8=946, 9=1013}


Map也用到多维。

Map<Person,List<TV>>;

12)Queue

public class TestQueue {
public static void main(String[] args) {
Random r = new Random(47);
for (int i = 0; i < 10; i++) {
//将一个元素插入队尾
q.offer(r.nextInt(12));
}
//返回队头
System.out.println(q.peek());
System.out.println(q);
}
}

public class TestPriorityQueue {
public static void main(String[] args) {
String s = "What 's your favorite number ,1 or 2?";
List<String> l = Arrays.asList(s.split(""));
PriorityQueue<String> pq = new PriorityQueue<String>(l);

while(pq.peek()!=null){
System.out.print(pq.remove()+" ");
}
}
}

result：
[,  ,  ,  ,  , b,  , 1,  , i, e, n, h, ',  , a, o, 2, ?, y, t, t, o, u, u, m, r, e,
r, f, ,, s, a, v, r, o, W, r]

' , 1 2 ? W a a b e e f h i m n o o o r r r r s t t u u v y



 public static void main(String[] args) {
String s = "werwerwer";
List<String> l = Arrays.asList(s.split(""));
PriorityQueue<String> pq = new PriorityQueue<String>(l);
while (pq.peek() != null) {
System.out.print(pq.remove() + " ");
}
pq = new PriorityQueue<String>(l);
System.out.println(pq.peek());
pq.remove();
System.out.println(pq.peek());
pq.remove();
System.out.println(pq.peek());
}

result:
e e e r r r w w w
e
e


13)Foreach与迭代器

foreach遍历：

public class Box {
public static void main(String[] args) {
String s = "you are so great";
for(String string : c){
System.out.println(string);
}
}
}

All Known Subinterfaces:
BeanContext, BeanContextServices, BlockingDeque<E>, BlockingQueue<E>,
Collection<E>, Deque<E>, DirectoryStream<T>, List<E>, NavigableSet<E>,
Queue<E>, Set<E>, SortedSet<E>


1、数组可以存放对象，存放基本类型的数据，可以多维，就是容量不能改变。

2、Collection保存单一的元素，Map保存键值对。

public class Box {
public static void main(String[] args) {
long start = System.currentTimeMillis();
Random r = new Random(47);
for(int i = 0; i< 1000000; i++){
}
long end = System.currentTimeMillis();
System.out.println(end - start);

ArrayList<Integer> a = new ArrayList<Integer>();
for(int i = 0; i< 1000000; i++){
}
long end2 = System.currentTimeMillis();
System.out.println(end2 -end);
}
}

#### Java编程思想(八) —— 持有对象(上)

2014-09-08 09:59:11

#### 《Java编程思想-持有对象》

2017-06-25 21:54:49

#### Java编程思想第四版第十一章学习——持有对象

2016-06-03 21:42:12

#### Java编程思想，读书笔记九（第11章 持有对象）

2018-06-03 22:06:42

#### Java编程思想之持有对象

2017-08-02 18:55:44

#### Java编程思想——持有对象

2017-11-18 11:45:56

#### Java编程思想-11持有对象

2017-05-06 14:10:06

#### JAVA编程思想-第十一章 持有对象

2014-09-12 15:48:17

#### <Java编程思想>持有对象（笔记）

2013-06-19 23:59:22

#### Java编程思想（11） 持有对象

2018-01-06 10:44:38