Java面试题(03)

1)编写程序,计算任意两个日期之间间隔的天数。

import java.util.Calendar;

public class Ex14 {

public static void main(String[] args) {

Calendar c1 = Calendar.getInstance();

c1.set(2010, 7, 1);

Calendar c2 = Calendar.getInstance();

long ca1 = c1.getTimeInMillis();

long ca2 = c2.getTimeInMillis();

// 计算天数    

long days = (ca2 - ca1) / (24 * 60 * 60 * 1000);

System.out.println(days);

}

}

2)创建一个HashMap对象,添加一些学生的姓名和成绩:张三:90分,李四,83分。接着从HashMap中获取并他们的姓名和成绩,然后把李四的成绩改为100分,再次输出他们的信息。

import java.util.HashMap;

public class Ex15 {

public static void main(String[] args) {

HashMap map=new HashMap();

map.put(“张三“,90);

map.put(“李四“,83);

System.out.println(“修改前的成绩:“);

System.out.println(map);

map.put(“李四“,100);

System.out.println(“修改后的成绩:“);

System.out.println(map);

}

}

3)编写一个程序,用parseInt方法将字符串200由十六进制转换为十进制的int型数据,用valueOf方法将字符串123456转换为float型数据。

public class Ex16 {

public static void main(String[] args) {

String str1=”200″;

System.out.println(Integer.parseInt(str1,16));

String str2=”123456″;

System.out.println(Float.parseFloat(str2));

}

}

4) 编写程序,将long型数据987654转换为字符串,将十进制数365转换为十六进制数表示的字符串

public class Ex17 {

public static void main(String[] args) {

long num=987654L;

int i=365;

System.out.println(“Long类型转换为String:“+String.valueOf(num));

String HexI=DtoX(i);

System.out.println(HexI);

}

//转换函数

public static String DtoX(int d)

{

String x=”";

if(d<16){

x=change(d);

}

else{

int c;

int s=0;

int n=d;

while(n>=16){

s++;

n=n/16;

}

String [] m=new String[s];

int i=0;

do{

c=d/16;

//判断是否大于10,如果大于10,则转换为A-F的格式

m[i++]=change(d%16);

d=c;

}while(c>=16);

x=change(d);

for(int j=m.length-1;j>=0;j–){

x+=m[j];

}

}

return x;

}

//判断是否为10-15之间的数,如果是则进行转换

public static String change(int d){

String x=”";

switch(d){

case 10:

x=”A”;

break;

case 11:

x=”B”;

break;

case 12:

x=”C”;

break;

case 13:

x=”D”;

break;

case 14:

x=”E”;

break;

case 15:

x=”F”;

break;

default:

x=String.valueOf(d);

}

return x;

}

}

5)编写一个程序,接收以克为单位的一包茶叶的单位重量、卖出的包数和每克的价格,计算并显示出销售的总额。其中三个数据一行输入,数据间用“-”分隔。比 如:输入“3-100-2.1”,表示每包的重量为3克,共卖出100包,每克的价格为2.1元。此时的销售总额为630元。

import java.util.Scanner;

public class Ex18 {

public static void main(String[] args) {

Scanner scan=new Scanner(System.in);

System.out.println(“请依次输入重量、包数、价格,并以-分隔:“);

String strIn=scan.nextLine();

Scanner sc=new Scanner(strIn);

sc.useDelimiter(“-”); //设置分隔符

int num=sc.nextInt();

int bag=sc.nextInt();

float price=sc.nextFloat();

double total=price*num*bag;

System.out.println(“销售总额为:“+total);

}

}

6)编写一个泛型方法,能够返回一个int类型数组的最大值和最小值、String类型数组的最大值和最小值(按字典排序)

class Pair{

private T min;

private T max;

public Pair() {  min = null; max = null;  }

public Pair(T min, T max) {  this.min = min;  this.max = max;  }

public T getMin() {  return min;  }

public T getMax() {  return max;  }

public void setMin(T newValue) {  min = newValue;  }

public void setMax(T newValue) {  max = newValue;  }

}

class ArrayAlg {

public static  Pair minmax(T[ ] a) {

if (a == null || a.length == 0) {

return null;

}

T min = a[0];T max = a[0];

for (int i = 1; i < a.length; i++) {

if (min.compareTo(a[i]) > 0) {min = a[i];}

if (max.compareTo(a[i]) < 0) { max = a[i];}

}

return new Pair(min, max);

}

}

public class Ex19 {

public static void main(String[] args) {

//测试整型数组

Integer[] arrI={1,2,3,4,5,6};

Pair p1=ArrayAlg.minmax(arrI);

System.out.println(“整型数组的最小值:“+p1.getMin().intValue());

System.out.println(“整型数组的最大值:“+p1.getMax().intValue());

//测试字符串数组

String[ ] words ={“able”,”word”,”excel”,”course”,”java”,”c#”};

Pair p2=ArrayAlg.minmax(words);

System.out.println(“字符串数组的最小值:“+p2.getMin());

System.out.println(“字符串数组的最大值:“+p2.getMax());

}

}

7)编写一个泛型方法,接受对象数组和集合作为参数,将数组中的对象加入集合中。并编写代码测试该方法。

import java.util.*;

public class Ex20 {

static  void fromArrayToCollection(T[]a, Collection c){

for (T o : a){

c.add(o);

}

}

public static void main(String[] args) {

Integer[] ia = new Integer[100];

Collection cn = new ArrayList();

fromArrayToCollection(ia, cn);// T是Number类型

System.out.println(cn);

}

}

8)试编写一个List类型的对象只能存储通讯录(存储同学的姓名和联系方式),并输出通讯录的列表到控制台

import java.util.*;

class Student{

private String name;

private String phone;

public Student(String name, String phone) {

this.name = name;

this.phone = phone;

}

public String toString() {

return name+”:”+phone;

}

}

public class Ex21 {

public static void main(String[] args) {

Student st1=new Student(“John”,”23214″);

Student st2=new Student(“Alice”,”4563″);

List list=new ArrayList();

list.add(st1);list.add(st2);

for(int i=0;i<list.size();i++)

System.out.println(list.get(i));

}

}

原文地址:https://www.cnblogs.com/QAZLIU/p/5505341.html