java程序员成功面试秘籍

[TOC]

java程序员成功面试秘籍

标签(空格分隔): java

第四章编写核心算法

Comparable和Comparator接口的区别

测试:

    @Test
    public void sortInts() {
        final int[] numbers = {-3, -5, 1, 7, 4, -2};
        final int[] expected = {-5, -3, -2, 1, 4, 7};

        Arrays.sort(numbers); //升序排列
        assertArrayEquals(expected, numbers);
        Collections.sort(numbers, new ReverseNumericalOrder());//降序排列
        assertEquals(expected, numbers);
    }

ReverseNumericalOrder.java 降序排列

import java.util.Comparator;

public class ReverseNumericalOrder implements Comparator<Integer> {
    @Override
    public int compare(Integer o1, Integer o2) {
        return o2 - o1;
    }
    // equals omitted
}

关于compare(Object o1,Object o2)

Comparator的compare

几种排序

  1. 冒泡排序
  2. 插入排序
  3. 快速排序
  4. 归并排序

快速排序.java实现方法。写法很java

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static junit.framework.Assert.assertEquals;
public class Quicksort {

public static List<Integer> quicksort(List<Integer> numbers) {
    if (numbers.size() < 2) {
        return numbers;
    }

    final Integer pivot = numbers.get(0);
    final List<Integer> lower = new ArrayList<>();
    final List<Integer> higher = new ArrayList<>();

    for (int i = 1; i < numbers.size(); i++) {
        if (numbers.get(i) < pivot) {
            lower.add(numbers.get(i));
        } else {
            higher.add(numbers.get(i));
        }
    }

    final List<Integer> sorted = quicksort(lower);

    sorted.add(pivot);
    sorted.addAll(quicksort(higher));

    return sorted;
}

第五章 数据结构

ArrayList List的数组实现(数组的特性)
LinkedList List的双向链表实现(双向链表的特性)

JVM System.arraycopy

队列

队列

散列
HashMap :键的存储位置是由对象的hashCode决定的
TreeMap: TreeMap键的顺序不变(二叉树)
LinkedHashMap工作方式和HashMap一样,链表实现,见得遍历插入顺序相同
ConcurrentHashMap:线程安全,多线程共享数据使用

散列

几种Map的比较

Set
HashSet -->HashMap :键的存储位置是由对象的hashCode决定的
TreeSet --> TreeMap: TreeMap键的顺序不变(二叉树)
LinkedHashSet --> LinkedHashMap工作方式和HashMap一样,链表实现,见得遍历插入顺序相同

几种Set
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 1,184评论 0 16
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,291评论 0 16
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,373评论 11 349
  • 从一个待了多年的公司辞职,仿佛跟结婚多年的妻子离婚,前妻的情况嘴上不说,心里还是惦念的,因为情分还在,但是要想复合...
    DianWang阅读 316评论 0 0
  • 写作班作业:Freeling 《琉璃瓦》比喻摘录: 1.亲友们根据着“弄瓦,弄璋”的话,和姚先生打趣,唤他太太为“...
    顾桥阅读 347评论 2 0