importjava.util.*;importjava.io.*;publicclassArrayToCollection{publicstaticvoidmain(String args[])throwsIOException{int n =5;// 5 个元素String[] name =newString[n];for(int i =0; i < n; i++){name[i]=String.valueOf(i);}List<String> list =Arrays.asList(name);System.out.println();for(String li: list){String str = li;System.out.print(str +" ");}}}
2.Java 实例 – 集合比较
importjava.util.Collections;importjava.util.Set;importjava.util.TreeSet;classMain{publicstaticvoidmain(String[] args){String[] coins ={"Penny","nickel","dime","Quarter","dollar"};Set<String> set =newTreeSet<String>();for(int i =0; i < coins.length; i++){set.add(coins[i]);}System.out.println(Collections.min(set));System.out.println(Collections.min(set,String.CASE_INSENSITIVE_ORDER));for(int i =0; i <=10; i++){System.out.print("-");}System.out.println("");System.out.println(Collections.max(set));System.out.println(Collections.max(set,String.CASE_INSENSITIVE_ORDER));}}
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){List<Integer> list =newArrayList<Integer>();for(int i =0; i <10; i++)list.add(newInteger(i));System.out.println("打乱前:");System.out.println(list);for(int i =1; i <6; i++){System.out.println("第"+ i +"次打乱:");Collections.shuffle(list);System.out.println(list);}}}
6.Java 实例 – 集合遍历
importjava.util.ArrayList;importjava.util.HashSet;importjava.util.Iterator;importjava.util.List;importjava.util.Set;publicclassMain{publicstaticvoidmain(String[] args){// List集合的遍历listTest();// Set集合的遍历setTest();}privatestaticvoidsetTest(){Set<String> set =newHashSet<String>();set.add("JAVA");set.add("C");set.add("C++");// 重复数据添加失败set.add("JAVA");set.add("JAVASCRIPT");// 使用iterator遍历set集合Iterator<String> it = set.iterator();while(it.hasNext()){String value = it.next();System.out.println(value);}// 使用增强for循环遍历set集合for(String s: set){System.out.println(s);}}// 遍历list集合privatestaticvoidlistTest(){List<String> list =newArrayList<String>();list.add("菜");list.add("鸟");list.add("教");list.add("程");list.add("www.runoob.com");// 使用iterator遍历Iterator<String> it = list.iterator();while(it.hasNext()){String value = it.next();System.out.println(value);}// 使用传统for循环进行遍历for(int i =0, size = list.size(); i < size; i++){String value = list.get(i);System.out.println(value);}// 使用增强for循环进行遍历for(String value : list){System.out.println(value);}}}
7.Java 实例 – 集合反转
importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;importjava.util.ListIterator;classMain{publicstaticvoidmain(String[] args){String[] coins ={"A","B","C","D","E"};List l =newArrayList();for(int i =0; i < coins.length; i++)l.add(coins[i]);ListIterator liter = l.listIterator();System.out.println("反转前");while(liter.hasNext())System.out.println(liter.next());Collections.reverse(l);liter = l.listIterator();System.out.println("反转后");while(liter.hasNext())System.out.println(liter.next());}}
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){List<String> list =newArrayList<String>();list.add("菜"); list.add("鸟"); list.add("教");list.add("程");list.add("www.runoob.com");String[] s1 = list.toArray(newString[0]);for(int i =0; i < s1.length;++i){String contents = s1[i];System.out.print(contents);}}}
12.Java 实例 – List 循环移动元素
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){List list =Arrays.asList("one Two three Four five six".split(" "));System.out.println("List :"+list);Collections.rotate(list,3);System.out.println("rotate: "+ list);}}
13.Java 实例 – 查找 List 中的最大最小值
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){List list =Arrays.asList("one Two three Four five six one three Four".split(" "));System.out.println(list);System.out.println("最大值: "+Collections.max(list));System.out.println("最小值: "+Collections.min(list));}}
14.Java 实例 – 遍历 HashTable 的键值
importjava.util.Enumeration;importjava.util.Hashtable;publicclassMain{publicstaticvoidmain(String[] args){Hashtable ht =newHashtable();ht.put("1","One");ht.put("2","Two");ht.put("3","Three");Enumeration e = ht.keys();while(e.hasMoreElements()){System.out.println(e.nextElement());}}}
15.Java 实例 – 使用 Enumeration 遍历 HashTable
importjava.util.Enumeration;importjava.util.Hashtable;publicclassMain{publicstaticvoidmain(String[] args){Hashtable ht =newHashtable();ht.put("1","One");ht.put("2","Two");ht.put("3","Three");Enumeration e = ht.elements();while(e.hasMoreElements()){System.out.println(e.nextElement());}}}
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){List list =Arrays.asList("one Two three Four five six one three Four".split(" "));System.out.println("List :"+list);Collections.replaceAll(list,"one","hundrea");System.out.println("replaceAll: "+ list);}}
18.Java 实例 – List 截取
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){List list =Arrays.asList("one Two three Four five six one three Four".split(" "));System.out.println("List :"+list);List sublist =Arrays.asList("three Four".split(" "));System.out.println("子列表 :"+sublist);System.out.println("indexOfSubList: "+Collections.indexOfSubList(list, sublist));System.out.println("lastIndexOfSubList: "+Collections.lastIndexOfSubList(list, sublist));}}
importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.net.ServerSocket;importjava.net.Socket;publicclassServer{publicstaticvoidmain(String[] args){try{ServerSocket ss =newServerSocket(8888);System.out.println("启动服务器....");Socket s = ss.accept();System.out.println("客户端:"+s.getInetAddress().getLocalHost()+"已连接到服务器");BufferedReader br =newBufferedReader(newInputStreamReader(s.getInputStream()));//读取客户端发送来的消息String mess = br.readLine();System.out.println("客户端:"+mess);BufferedWriter bw =newBufferedWriter(newOutputStreamWriter(s.getOutputStream()));bw.write(mess+"\n");bw.flush();}catch(IOException e){e.printStackTrace();}}}
importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.OutputStreamWriter;importjava.net.Socket;importjava.net.UnknownHostException;publicclassClient{publicstaticvoidmain(String[] args){try{Socket s =newSocket("127.0.0.1",8888);//构建IOInputStream is = s.getInputStream();OutputStream os = s.getOutputStream();BufferedWriter bw =newBufferedWriter(newOutputStreamWriter(os));//向服务器端发送一条消息bw.write("测试客户端和服务器通信,服务器接收到消息返回到客户端\n");bw.flush();//读取服务器返回的消息BufferedReader br =newBufferedReader(newInputStreamReader(is));String mess = br.readLine();System.out.println("服务器:"+mess);}catch(UnknownHostException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}}}
十二.Java 线程
1.Java 实例 – 查看线程是否存活
publicclassTwoThreadAliveextendsThread{publicvoidrun(){for(int i =0; i <10; i++){printMsg();}}publicvoidprintMsg(){Thread t =Thread.currentThread();String name = t.getName();System.out.println("name="+ name);}publicstaticvoidmain(String[] args){TwoThreadAlive tt =newTwoThreadAlive();tt.setName("Thread");System.out.println("before start(), tt.isAlive()="+ tt.isAlive());tt.start();System.out.println("just after start(), tt.isAlive()="+ tt.isAlive());for(int i =0; i <10; i++){tt.printMsg();}System.out.println("The end of main(), tt.isAlive()="+ tt.isAlive());}}
2.Java 实例 – 获取当前线程名称
publicclassTwoThreadGetNameextendsThread{publicvoidrun(){for(int i =0; i <10; i++){printMsg();}}publicvoidprintMsg(){Thread t =Thread.currentThread();String name = t.getName();System.out.println("name="+ name);}publicstaticvoidmain(String[] args){TwoThreadGetName tt =newTwoThreadGetName();tt.start();for(int i =0; i <10; i++){tt.printMsg();}}}
publicclassSimplePrioritiesextendsThread{privateint countDown =5;privatevolatiledouble d =0;publicSimplePriorities(int priority){setPriority(priority);start();}publicStringtoString(){returnsuper.toString()+": "+ countDown;}publicvoidrun(){while(true){for(int i =1; i <100000; i++)d = d +(Math.PI +Math.E)/(double)i;System.out.println(this);if(--countDown ==0)return;}}publicstaticvoidmain(String[] args){newSimplePriorities(Thread.MAX_PRIORITY);for(int i =0; i <5; i++)newSimplePriorities(Thread.MIN_PRIORITY);}}
/*author by runoob.comProducerConsumerTest.java*/publicclassProducerConsumerTest{publicstaticvoidmain(String[] args){CubbyHole c =newCubbyHole();Producer p1 =newProducer(c,1);Consumer c1 =newConsumer(c,1);p1.start(); c1.start();}}classCubbyHole{privateint contents;privateboolean available =false;publicsynchronizedintget(){while(available ==false){try{wait();}catch(InterruptedException e){}}available =false;notifyAll();return contents;}publicsynchronizedvoidput(int value){while(available ==true){try{wait();}catch(InterruptedException e){}}contents = value;available =true;notifyAll();}}classConsumerextendsThread{privateCubbyHole cubbyhole;privateint number;publicConsumer(CubbyHole c,int number){cubbyhole = c;this.number = number;}publicvoidrun(){int value =0;for(int i =0; i <10; i++){value = cubbyhole.get();System.out.println("消费者 #"+this.number+" got: "+ value);}}}classProducerextendsThread{privateCubbyHole cubbyhole;privateint number;publicProducer(CubbyHole c,int number){cubbyhole = c;this.number = number;}publicvoidrun(){for(int i =0; i <10; i++){cubbyhole.put(i);System.out.println("生产者 #"+this.number +" put: "+ i);try{sleep((int)(Math.random()*100));}catch(InterruptedException e){}}}}
10.Java 实例 – 获取线程状态
// Java 程序 - 演示线程状态class thread implementsRunnable{publicvoidrun(){// thread2 - 超时等待try{Thread.sleep(1500);}catch(InterruptedException e){ e.printStackTrace();}System.out.println("State of thread1 while it called join() method on thread2 -"+Test.thread1.getState());try{Thread.sleep(200);}catch(InterruptedException e){ e.printStackTrace();}}}publicclassTestimplementsRunnable{publicstaticThread thread1;publicstaticTest obj;publicstaticvoidmain(String[] args){ obj =newTest(); thread1 =newThread(obj);// 创建 thread1,现在是初始状态System.out.println("State of thread1 after creating it - "+ thread1.getState()); thread1.start();// thread1 - 就绪状态System.out.println("State of thread1 after calling .start() method on it - "+ thread1.getState());}publicvoidrun(){ thread myThread =newthread();Thread thread2 =newThread(myThread);// 创建 thread1,现在是初始状态System.out.println("State of thread2 after creating it - "+ thread2.getState()); thread2.start();// thread2 - 就绪状态System.out.println("State of thread2 after calling .start() method on it - "+ thread2.getState());// moving thread1 to timed waiting state try{//moving - 超时等待Thread.sleep(200);}catch(InterruptedException e){ e.printStackTrace();}System.out.println("State of thread2 after calling .sleep() method on it - "+ thread2.getState());try{// 等待 thread2 终止thread2.join();}catch(InterruptedException e){ e.printStackTrace();}System.out.println("State of thread2 when it has finished it's execution - "+ thread2.getState());}}
11.Java 实例 – 获取所有线程
publicclassMainextendsThread{publicstaticvoidmain(String[] args){Main t1 =newMain();t1.setName("thread1");t1.start();ThreadGroup currentGroup =Thread.currentThread().getThreadGroup();int noThreads = currentGroup.activeCount();Thread[] lstThreads =newThread[noThreads];currentGroup.enumerate(lstThreads);for(int i =0; i < noThreads; i++)System.out.println("线程号:"+ i +" = "+ lstThreads[i].getName());}}
12.Java 实例 – 查看线程优先级
publicclassMainextendsObject{privatestaticRunnablemakeRunnable(){Runnable r =newRunnable(){publicvoidrun(){for(int i =0; i <5; i++){Thread t =Thread.currentThread();System.out.println("in run() - priority="+ t.getPriority()+", name="+ t.getName());try{Thread.sleep(2000);}catch(InterruptedException x){}}}};return r;}publicstaticvoidmain(String[] args){System.out.println("in main() - Thread.currentThread().getPriority()="+Thread.currentThread().getPriority());System.out.println("in main() - Thread.currentThread().getName()="+Thread.currentThread().getName());Thread threadA =newThread(makeRunnable(),"threadA");threadA.start();try{Thread.sleep(3000);}catch(InterruptedException x){}System.out.println("in main() - threadA.getPriority()="+ threadA.getPriority());}}
13.Java 实例 – 中断线程
publicclassMainextendsObjectimplementsRunnable{publicvoidrun(){try{System.out.println("in run() - 将运行 work2() 方法");work2();System.out.println("in run() - 从 work2() 方法回来");}catch(InterruptedException x){System.out.println("in run() - 中断 work2() 方法");return;}System.out.println("in run() - 休眠后执行");System.out.println("in run() - 正常离开");}publicvoidwork2()throwsInterruptedException{while(true){if(Thread.currentThread().isInterrupted()){System.out.println("C isInterrupted()="+Thread.currentThread().isInterrupted());Thread.sleep(2000);System.out.println("D isInterrupted()="+Thread.currentThread().isInterrupted());}}}publicvoidwork()throwsInterruptedException{while(true){for(int i =0; i <100000; i++){int j = i *2;}System.out.println("A isInterrupted()="+Thread.currentThread().isInterrupted());if(Thread.interrupted()){System.out.println("B isInterrupted()="+Thread.currentThread().isInterrupted());thrownewInterruptedException();}}}publicstaticvoidmain(String[] args){Main si =newMain();Thread t =newThread(si);t.start();try{Thread.sleep(2000);}catch(InterruptedException x){}System.out.println("in main() - 中断其他线程");t.interrupt();System.out.println("in main() - 离开");}}