`
H小阿飞
  • 浏览: 274458 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

笔试题-编程

 
阅读更多

抛砖引玉,还望各位大侠提供更好的方法

 

 

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");
	}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics