java面试

来源:互联网 发布:美国历年gdp数据 编辑:程序博客网 时间:2024/05/16 19:09
--1到20组成的20的数种数


public class Sum20 {


    public static void count(int value,String str,int sum){
        if (value==sum){
            System.out.println("[ " + str +value + "]=20");
        }else if (sum - value >0){
            sum -= value;
            str = str + value+",";
            if (sum>value){
                for (int j = value+1; j <=20 ; j++) {
                    count(j,str,sum);
                }
            }
        }
    }






    public static void main(String[] args) {
        for (int i = 1; i <= 20; i++) {
            count(i,"",20);
        }
    }
}




--把一个字符串里除了大小写字母以外的所有东西都去掉,然后都变成小写,之后按从a到z的顺序排序
public class SortLambda {


    public static List getString(String str){
        ArrayList list = new ArrayList();
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i)>=97 && str.charAt(i)<=122){
                list.add(str.charAt(i));
            }else if (str.charAt(i)>=65 && str.charAt(i)<=90){
                list.add((char)(str.charAt(i)+32));
            }
        }
        return list;
    }


    public static String sort(List list){
        list.sort((o1,o2)->(char)o1-(char)o2);

        StringBuilder strBuilder = new StringBuilder();
        for (int i = 0; i < list.size(); i++) {
            strBuilder.append(list.get(i));
        }


        return strBuilder.toString();
        
    }






    public static void main(String[] args) {
        String str = "sdaASH%iAGA rG$vAG;o3#yrqi br@lAHks813tgpHre iyt12qtgf";


        System.out.println(sort(getString(str)));
    }


}






public class SortStr {


    public static String getString(String str){
        StringBuilder strBuilder = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i)>=97 && str.charAt(i)<=122){
                strBuilder.append(str.charAt(i));
            }else if (str.charAt(i)>=65 && str.charAt(i)<=90){
                strBuilder.append((char)(str.charAt(i)+32));
            }
        }
        return strBuilder.toString();
    }


    public static String sort(String str){
        int flag;
        char[] chars = new char[str.length()];
        for (int i = 0; i < str.length(); i++) {
            chars[i]=(char)str.charAt(i);
        }


        for (int i = 0; i < chars.length-1; i++) {
            flag = 0;
            for (int j = chars.length-1; j > i ; j--) {
                if (chars[j]<chars[j-1]){
                    char x = chars[j];
                    chars[j] = chars[j-1];
                    chars[j-1] = x;
                    flag = 1;
                }
            }
            if (flag == 0) {break;}
        }


        StringBuilder strBuilder = new StringBuilder();
        for (int i = 0; i < chars.length; i++) {
            strBuilder.append(chars[i]);
        }


        return strBuilder.toString();
        
    }






    public static void main(String[] args) {
        String str = "sdaASH%iAGA rG$vAG;o3#yrqi br@lAHks813tgpHre iyt12qtgf";


        System.out.println(sort(getString(str)));
    }




}






package com.linyi;


public class Dinning {
    public static void main(String[] args) {
        KuaiZi k1 = new KuaiZi("筷子一号");
        KuaiZi k2 = new KuaiZi("筷子二号");
        KuaiZi k3 = new KuaiZi("筷子三号");


        Philosopher p1 = new Philosopher("农民", k1, k2);
        Philosopher p2 = new Philosopher("工程师", k2, k3);
        Philosopher p3 = new Philosopher("哲学家", k3, k1);
        p1.start();
        p2.start();
        p3.start();
    }
}


// 筷子类
class KuaiZi {
    String name;
    boolean Enable = true;// 构造方法


    public KuaiZi(String name) {
        this.name = name;
    }


    // 放下筷子
    public synchronized void putdown() {
        this.Enable = true;
    }


    // 去取筷子
    public synchronized boolean pickup() { // 如果取到筷子了,就返回true,否则返回false


        if (this.Enable) // 筷子空闲
        {
            this.Enable = false; // 取到筷子
            return true;
        }


        return false;
    }
}


// 哲学家类:
class Philosopher extends Thread {
    String name;
    KuaiZi left;
    KuaiZi right;


    public Philosopher(String name, KuaiZi l, KuaiZi r) {
        this.name = name;
        left = l;
        right = r;
    }


    public void run() {// 吃饭前的思考,时间是随机的
        try {
            System.out.println(name + "在思考中。。。");
            Thread.sleep((long) (Math.random()));// 思考时间
            System.out.println(name + "思考结束!");


        } catch (InterruptedException e) {
            e.printStackTrace();
        }


        while (true)// 一直处于等待那筷子状态,如果2只手都拿到了就进餐,否则一直等待
        {
            boolean leftflag = left.pickup();// 左手拿筷子
            while (!leftflag) // 没有拿到就等待一段时间再拿
            {
                try {
                    sleep(10);
                } catch (Exception ex) {


                }
                leftflag = left.pickup();
            }
            System.out.println(name + "抓起" + left.name);


            boolean rightflag = right.pickup();// 右手开始拿筷子
            if (rightflag)// 拿到了,不在等待,开始吃
            {
                System.out.println(name + "抓起" + right.name);
                break;
            } else// 没拿到,把左手已经拿到的筷子放下继续等待
            {
                System.out.println(name + "没有拿到" + right.name);
                left.putdown();
                System.out.println(name + "放下" + left.name + "继续等待...");
                try {
                    sleep(10);
                } catch (Exception ex) {


                }
            }
        }
        System.out.println(name + "拿到两支筷子开吃");
        try {
            Thread.sleep(1);// 吃饭时间
        } catch (InterruptedException e) {
            e.printStackTrace();


        }
        System.out.println(name + "吃饱之后放下了" + left.name + "和" + right.name
                + "!");
        left.putdown();
        right.putdown();
    }
}
原创粉丝点击