java基础机试题

java基础机试题

public class StringDate {
    /*
           求数组交集
           比如["a","a","b","c","d"]和["a","c","e"]交集是["a","c"]
     */
    public static String[] getIntersection(String[] strings1, String[] strings2){
        Set<String> set = new HashSet<>();
        for (int i = 0; i < strings1.length; i++) {
            for (int j = 0; j < strings2.length; j++){
                if (strings1[i].equals(strings2[j])){
                    set.add(strings1[i]);
                }
            }
        }
        String[] strings = set.toArray(new String[0]); //set集合转化为String[] 字符串数组
        return strings;
    }

    /*
        找出字符串中出现次数最多的字母和出现的次数
     */
    public static char findMaxChar(String str){
        HashMap<Character,Integer> hashMap = new HashMap();
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (hashMap.get(chars[i]) == null){
                hashMap.put(chars[i] , 1);
            }else {
                int n = hashMap.get(chars[i]);
                hashMap.put(chars[i] , n+1);
            }
        }
        System.out.println(hashMap);
        Set<Map.Entry<Character, Integer>> entries = hashMap.entrySet();
        List<Map.Entry<Character,Integer>> list = new LinkedList<>(entries); //从HashMap->Set->List
        /*Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>() {
            @Override
            public int compare(Map.Entry<Character, Integer> o1, Map.Entry<Character, Integer> o2) {
                return o1.getValue() - o2.getValue();
            }
        });
        System.out.println("按字母出现次数从小到大的顺序排列:"+list);*/
        int max = 0;
        char flag = ' ';
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getValue() > max){
                max = list.get(i).getValue();
                flag = list.get(i).getKey();
            }
        }
        System.out.println(flag+"为出现最多的字符,出现最多的次数为:"+ max +"次");
        return flag;
    }

    public static char findMaxChar2(String str){
        char ret= ' ';
        int[] sum = new int[128];
        for(int i=0; i<str.length(); i++){
            char c = str.charAt(i);
            if((65 <= c && c <= 90) || (97 <= c && c <=122))
                sum[c]++;
        }
        int count = 0;
        for(int i=0; i<sum.length; i++)
            if(sum[i] > count)
            {
                count = sum[i];
                ret = (char) i;
            }
        System.out.println(ret+"出现最多的次数为:"+ count +"次");
        return ret;
    }

    /*
        求两个日期相隔的天数
        如2020-02-19与2020-02-20相隔一天
     */
    public static int getIntervalDate(Date d1, Date d2) throws ParseException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String format1 = format.format(d1);//String format(Date date)按照指定的格式把Date日期,格式化为符合模式的字符串
        Date date1 = format.parse(format1);//Date parse(String source):把符合模式的字符串,解析为Date日期(要抛出异常)
        Date date2 = format.parse(format.format(d2));
        long l = (date2.getTime()-date1.getTime())/(1000*24*60*60);
        long abs = Math.abs(l);
        System.out.println(abs);
        int a =(int)abs;
        return a;
    }

    /*
        去除链表integers中的负数,并将结果按长整型存放在另一个链表中
        (要用java8中的流来实现)
     */
    public static List<Long> streamTest(List<Integer> integers){
        
        ArrayList<Long> arrayList = new ArrayList<>();
        integers.stream().filter(ints -> ints > 0).forEach(ints->arrayList.add(Long.valueOf(ints)));
//        integers.stream().forEach((ints)->{if (ints>=0){arrayList.add(Long.valueOf(ints));}});
        return arrayList;
    }

    /*
        请用Lambda表达式输出链表中的内容
     */
    public static void lambdaTest(){
        List<String> strings = new LinkedList<>();
        strings.add("a");
        strings.add("b");
        strings.add("c");

        strings.forEach((s)->{
            System.out.println(s);
        });
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值