黑马程序员技术交流社区
标题:
求代码
[打印本页]
作者:
白粥做底
时间:
2015-10-31 23:11
标题:
求代码
编写程序,循环接收用户从键盘输入多个字符串,
* 直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。
作者:
ermao_qu
时间:
2015-10-31 23:22
总结: 1.共享的数据只能一份,那么在创建这个共享数据对象时候,就只能有一个对象. 2.实现了Runnable的类,只是一个协商提供线程运行的执行地. 3.共享数据是实实在在的,而线程是虚拟的. 4.wait和sleep的用法.wait是Object中的方法,使当前线程放弃cup执行权.同时可以等待时间...而sleep是Thread中的方法,使线程等待一段时间,但是线程并没有释放cup使用权. 思考: 1.线程之所以要实现Runnable而不继承Thread,是因为继承只支持单继承,限制了类的扩展性. 2.线程是一个虚拟的事物.这个虚拟的事物通过协议的执行地(run()方法)在这个区域执行线程所需要执行的数据.如何保证执行同一个资源呢?就是对于执行地只需求存放一份.如果通过创建两个ArrayAdd,那么这就是两个执行地.应该注意一下. 3.对于wait和sleep的用法.应该特别注意一下.如果我们想要让该线程放弃cup执行权(放弃锁),那么就可以使用wait来控制,如果只是让线程等待一段时间,那么就使用sleep()来操作. * */ public class Demo21 { public static void main(String[] args) { int[] in = new int[6]; //需要控制因素 ArrayAdd aa = new ArrayAdd(in); //既然要共享资源,那么这里就只能创建一个线程执行地. for(int x = 0; x < 2; x ++) { new Thread(aa).start(); //创建多个线程. } } } class ArrayAdd implements Runnable { private int[] in; //共享的资源,在创建时候,只能拥有一份. private int num = 0; ArrayAdd(int[] in) { this.in = in; } public void run() { while(num < in.length) { synchronized(in) { if(num < in.length) { try { Thread.sleep(500); //线程只是等待一会时间,并没有释放锁. } catch (InterruptedException e1) { e1.printStackTrace(); } Random rd = new Random(); int i = rd.nextInt(20) + 1; System.out.println(Thread.currentThread().getName() + "添加了:" + i); in[num] = i; num ++; try { in.wait(1000); //放弃cup,放弃锁.让其他线程拿锁. } catch (InterruptedException e) { e.printStackTrace(); } } else { break; } } } } }
作者:
大自然的搬运工
时间:
2015-10-31 23:47
/*
* 循环从键盘接受的输入的多个字符,知道输入“end”时循环结束,并将所有输入的字符串按字典倒序打印。
*/
public class test01 {
public static void main(String[] args) {
ArrayList<String> arr = new ArrayList<String>();// 创建容器
Scanner scanner = new Scanner(System.in);// 创建键盘扫描
while (scanner.hasNext()) {
String s = scanner.next();
if (s.equals("end"))// 判断输入的字符串等于end退出循环
break;
arr.add(s);// 不等于,添加到容器
}
Collections.sort(arr); // 排序,从小到大
Collections.reverse(arr);// 强行逆序
for (String s : arr)// 便利
System.out.println(s);
}
}
作者:
T-l-H、小生
时间:
2015-11-1 00:02
很简单的题目。楼上正解!
二楼写的是什么,表示没看懂。。。楼主好牛,居然看得懂,不过被版主看到。黑马币要被扣。。。你用小号刷黑马币也太明显了。。建议你去看看圣尊发的版规!
作者:
迷茫不堪的年纪
时间:
2015-11-1 23:17
一顿乱搞啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2