抛砖引玉,还望各位大侠提供更好的方法
1.编程:通过线程每个一秒打印如下字符串:“ABCDEFG”,输出结果为:
A
AB
ABC
ABCD
ABCDE
ABCDEF
ABCDEFG
继承Thread:
package main;
public class ThreadA extends Thread{
private String A = "ABCDEFG";
public void run(){
try {
int length = A.length();
for(int i=1;i<=length;i++){
System.out.println(A.substring(0, i));
sleep(1000);
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void a(){
}
public static void main(String args[]){
ThreadA ta = new ThreadA();
ta.start();
}
}
实现Runnable接口
package main;
public class ThreadB implements Runnable{
private String A = "ABCDEFG";
@Override
public void run() {
// TODO Auto-generated method stub
try {
int length = A.length();
for(int i=1;i<=length;i++){
System.out.println(A.substring(0, i));
Thread.sleep(1000);
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String args[]){
ThreadB tb = new ThreadB();
Thread thread = new Thread(tb);
thread.start();
}
}
2.编程:输出打印如下字符串中各字母出现的次数,采用效率最高的一种方法
方法一:效率应该低些
package main;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class HowTime {
private String t = null;
private String g = null;
public void count(String A){
Map<String, Integer> hashMap = new HashMap<String, Integer>();
for(int i=1;i<=A.trim().length();i++){
int time = 0;
t = A.trim().substring(i-1,i);
g = A.trim().substring(0,i-1);
if(g.contains(t)){
int count = hashMap.get(t)+1;
hashMap.put(t, count);
}
else{
hashMap.put(t, ++time);
}
}
Iterator<Entry<String, Integer>> iterator = hashMap.entrySet().iterator();
while(iterator.hasNext()){
Entry<String, Integer> entry = iterator.next();
int j = (Integer) entry.getValue();
String h = (String) entry.getKey();
System.out.println(h+"出现的次数为:"+j);
}
}
public static void main(String args[]){
long startTime=System.nanoTime(); //获取开始时间
String A = "abdafasfasfaadfioewl;k asfd asdf";
HowTime ht = new HowTime();
ht.count(A);
long endTime=System.nanoTime(); //获取结束时间
System.out.println("程序运行时间: "+(endTime-startTime)+"ns");
}
}
方法二;效率应该稍微高些
package main;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class HowTimes {
public void count(String A){
Map<Character, Integer> hashMap = new HashMap<Character, Integer>();
char[] a = A.toCharArray();
for(int i=0;i<a.length;i++){
if(hashMap.containsKey(a[i])){
hashMap.put(a[i], hashMap.get(a[i])+1);
}
else{
hashMap.put(a[i], 1);
}
}
Iterator<Entry<Character, Integer>> iterator = hashMap.entrySet().iterator();
while(iterator.hasNext()){
Entry<Character, Integer> entry = iterator.next();
int j = (Integer) entry.getValue();
Character h = (Character) entry.getKey();
System.out.println(h+"出现的次数为:"+j);
}
}
public static void main(String args[]){
long startTime=System.nanoTime(); //获取开始时间
String A = "abdafasfasfaadfioewl;k asfd asdf";
HowTimes ht = new HowTimes();
ht.count(A);
long endTime=System.nanoTime(); //获取结束时间
System.out.println("程序运行时间: "+(endTime-startTime)+"ns");
}
}
分享到:
相关推荐
( 滴滴出行2017秋招笔试真题-编程题汇总.pdf ) ( 滴滴出行2017秋招笔试真题-编程题汇总.pdf ) ( 滴滴出行2017秋招笔试真题-编程题汇总.pdf )
百度校园招聘笔试试题-深度学习算法研发工程师.docx百度校园招聘笔试试题-深度学习算法研发工程师.docx百度校园招聘笔试试题-深度学习算法研发工程师.docx百度校园招聘笔试试题-深度学习算法研发工程师.docx百度校园...
6、2016京东研发⼯程师笔试题-编程题(二) 7、2016京东实习生招聘笔试真题-技术岗位选择题(一) 8、2016京东实习生招聘笔试真题-技术岗位选择题(二) 9、2016京东实习生招聘笔试真题-技术岗位选择题(三) 10、...
2018年拼多多内推笔试题-java开发-针对2019届,4道编程题
c语言编程笔试题大全 c语言编程笔试题大全
华为最新笔试题——编程题及答案,华为最新笔试题——编程题及答案华为最新笔试题——编程题及答案,华为最新笔试题——编程题及答案
亚信java笔试题 喜欢就Star,不只是Fork; 想要分享的动机才是驱动力,而技术仅仅是一种方法。 综合类 入门类 效果类 工具类 慕课专题 周报类 ###六. API: ####1. 总目录 开发中心 综合Bug集合网站 综合搜索 综合API...
百度2017春招笔试真题编程题集合 百度2017春招笔试真题编程题集合 百度2017春招笔试真题编程题集合
NULL 博文链接:https://wangleide414.iteye.com/blog/1637226
华为最新笔试题——编程题及答案.doc
python编程简单笔试题,附答案,适合初学者学习使用。
小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?...
(1)编程实现基本的寄存器堆模块,并编写仿真测试程序验证 (2) 编程实现基本的 ALU 模块,ALU 功能如表 1 所示,并仿真测试验证 (3)编程实现 AL
(1)编程实现基本的寄存器堆模块,并编写仿真测试程序验证 (2)在 ISE 中使用 Memory IP 核生成一个 64*32 的 RAM,当做数据存储器(按字
亚信java笔试题 - Java编程入门-霍巴特和威廉斯密斯学院-戴维.约翰.艾克教授-2018年12月第8版 12.19 Java编程入门是一本使用Java语言作为指令集的入门级电脑编程免费教科书。他适合作为编程入门课程使用,也可以作为...
很好的360笔试编程内推题,需要较好的编程功底,当然对于一些人来说是很简单
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 63、启动一个线程是用run()还是start()? 答:启动一...
本人精心选择的选出的一套C++笔试题,找工作的亲,赶紧下吧。 选择+填空+简答+编程 含答案
Java高级编程笔试题.pdf