java程序員成功面試秘籍

[TOC]

java程序員成功面試秘籍

標(biāo)簽(空格分隔): java

第四章編寫核心算法

Comparable和Comparator接口的區(qū)別

測試:

    @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
}

關(guān)于compare(Object o1,Object o2)

Comparator的compare

幾種排序

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

快速排序.java實現(xiàn)方法。寫法很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;
}

第五章 數(shù)據(jù)結(jié)構(gòu)

ArrayList List的數(shù)組實現(xiàn)(數(shù)組的特性)
LinkedList List的雙向鏈表實現(xiàn)(雙向鏈表的特性)

JVM System.arraycopy

隊列

隊列

散列
HashMap :鍵的存儲位置是由對象的hashCode決定的
TreeMap: TreeMap鍵的順序不變(二叉樹)
LinkedHashMap工作方式和HashMap一樣,鏈表實現(xiàn),見得遍歷插入順序相同
ConcurrentHashMap:線程安全,多線程共享數(shù)據(jù)使用

散列

幾種Map的比較

Set
HashSet -->HashMap :鍵的存儲位置是由對象的hashCode決定的
TreeSet --> TreeMap: TreeMap鍵的順序不變(二叉樹)
LinkedHashSet --> LinkedHashMap工作方式和HashMap一樣,鏈表實現(xiàn),見得遍歷插入順序相同

幾種Set
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文出自 Eddy Wiki ,轉(zhuǎn)載請注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 1,224評論 0 16
  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對于byte類型而言...
    龍貓小爺閱讀 4,456評論 0 16
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,820評論 11 349
  • 從一個待了多年的公司辭職,仿佛跟結(jié)婚多年的妻子離婚,前妻的情況嘴上不說,心里還是惦念的,因為情分還在,但是要想復(fù)合...
    DianWang閱讀 369評論 0 0
  • 寫作班作業(yè):Freeling 《琉璃瓦》比喻摘錄: 1.親友們根據(jù)著“弄瓦,弄璋”的話,和姚先生打趣,喚他太太為“...
    顧橋閱讀 383評論 2 0

友情鏈接更多精彩內(nèi)容