抛砖引玉,还望各位大侠提供更好的方法
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”,其中包含了部分编程题目的内容以及一些相关代码片段。接下来,我将详细解析这份文件中包含的编程知识点。 首先,文件中包含了一段C++...
"CC++Java笔试题--很多大公司的面试和笔试题目-珍贵"这个压缩包文件很可能包含了这些语言的基础知识、进阶概念以及实际问题的解题策略,这些都是求职者在准备面试和笔试时需要掌握的重点。 C语言是基础,它的特点是...
以上只是部分核心知识点,实际的C和C++笔试题可能还会涉及更深入的编程技巧、设计模式、模板元编程、多线程、文件I/O、网络编程等内容。通过练习这些题目,你可以更好地巩固基础知识,提高解决问题的能力,从而在...
Java笔试题是评估应聘者Java编程技能的重要环节,它涵盖了从基础语法到高级特性的各个方面。这份"java笔试题-笔试题"集合旨在提供全面的练习题目,帮助求职者准备面试,同时也为教师或导师组织教学测试提供资源。...
【标题】"2015-9-虹软校招内推笔试题-算法岗" 涉及的是一场2015年9月份美国虹软公司(Arcsoft)针对算法工程师岗位的校园招聘内部推荐笔试。这个题目集对于准备参加类似招聘活动的应聘者具有很高的参考价值。虹软...
奥克斯集团2013年校园招聘笔试题-硬件类试题
2018年拼多多内推笔试题-java开发-针对2019届,4道编程题
这份笔试题不仅检验了应聘者的编程基础,还涉及了高级特性、设计模式、并发处理、数据结构与算法等多个方面,旨在全面评估候选人的综合素质。下面,我们将深入探讨这些知识点。 首先,Java基础是任何Java开发者必须...
"高校校招笔试真题-web测试题" 这个标题明确指出了这份资料的主题,是针对高等教育机构校园招聘过程中的一份笔试题目,主要涉及的是Web技术领域,特别是前端开发部分。这样的题目集通常是大学毕业生在应聘IT公司,...
【JAVA笔试题-包含JAVA各个方面的笔试题】 Java是一门广泛应用的编程语言,以其跨平台、面向对象的特性深受开发者喜爱。在准备Java相关的笔试或面试时,掌握以下几个关键知识点至关重要: 1. **基础语法**:理解...
"java笔试题-选择题-最终版.docx" 本资源是一个Java笔试题库,共30道选择题,涵盖Java基础知识、Java面向对象编程、Java集合框架、Java多线程编程、Java网络编程等方面。下面是对每道题目的知识点解释: 1.本题...
【微软技术支持工程师笔试题--技术测试】 在微软的技术支持工程师面试过程中,技术测试部分通常涉及广泛的知识领域,包括但不限于操作系统原理、网络技术、编程基础、软件调试和问题解决能力等。这份技术测试文档...
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 63、启动一个线程是用run()还是start()? 答:启动一...
Java笔试题是求职者在应聘Java相关职位时经常会遇到的一种测试形式,主要考察候选人的编程基础、算法理解、数据结构掌握、并发编程、框架应用等多个方面的技能。这份名为"各个公司的java笔试题---book"的资源集合,...
点我达作为一家知名的即时物流平台,其2019年校招笔试题对开发者们来说,无疑是一个深入了解企业技术需求、提升自身技能的良好资源。本合集主要针对Java开发者,意味着试题将聚焦于Java编程语言及其相关技术。在准备...
【Android笔试题与面试知识点详解】 在Android开发者领域,面试和笔试是评估候选人技术能力的重要环节。本资料“android-笔试题-答案(面试使用)”包含了一份针对Android开发者的笔试题目集,以及相应的解答,旨在...
Java笔试题-Java选择题100道(教学资料).doc文件提供了100道关于Java语言的选择题,涵盖了Java语言的基础知识点、语法规则、常用类库、多线程编程、网络编程、数据库编程等方面。 知识点1: Java语言基础知识 * ...
"美团点评2017秋招笔试真题-运维工程师A.pdf" 本资源提供了美团点评2017秋招笔试真题,专门针对运维工程师A岗位。该资源涵盖了多个知识点,包括数据库管理、网络协议、系统安全、Python编程、Linux操作系统等。 1....
这份笔试题旨在测试应聘者的嵌入式系统设计、编程和问题解决能力,为广大的求职者提供了一个展示自己技术水平的平台。下面,我们将根据这份笔试题的内容,深入探讨嵌入式开发相关的知识点。 1. **嵌入式系统基础**...
"2013年百度校招移动开发工程师笔试题--深圳" 这个标题揭示了这是百度公司在2013年度针对校园招聘进行的一场针对移动开发工程师岗位的笔试题目。这场考试可能包含了对于移动平台开发技术、编程语言、软件设计原则、...