最近打算换工作,还是需要补一下面试的基础知识,写了一些面试中可能会用到的常用算法、方法,以便复习

    //99乘法表
/**
* 1*1
* 1*1 1*2
* 1*1 1*2 1*3
* ……
* */
private static void chengfabiao() {
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+i*j+";");
}
System.out.println();
}
}
}

斐波那契数列:

//递归
private static int feibonaqie(int index) {
// TODO Auto-generated method stub
//0 1 1 2 3 5 8 13 21
int temp = 0; if(index == 0) {
return 0;
}else if(index == 1) {
return 1;
}else {
temp = feibonaqie(index-2)+feibonaqie(index-1);
//sum += temp;
//count++;
return temp;
} }
//循环
private static int feibonaqie2(int index) {
// TODO Auto-generated method stub
//0 1 1 2 3 5 8 13 21
int temp = 0;
int a = 0,b = 1;
if(index == 0) {
return 0;
}else if(index == 1) {
return 1;
}else { for(int i=2;i<=index;i++) {
temp = a+b;
a=b;
b=temp;
}
//sum += temp;
//count++;
return temp;
} }
/**
* @author QiaoJiafei
* @version 创建时间:2016年3月9日 下午12:02:09
* 类说明 获取数组平衡点
*/
public class TestArrayBlance {
public static void main(String[] args) {
int arr[] = {10,5,4,1,3,7};
getBlance(arr);
} private static void getBlance(int arry[]) {
// TODO Auto-generated method stub
int sum = 0;
int subsum = 0;
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<arry.length;i++) {
sum += arry[i];
}
for(int i=0;i<arry.length;i++) {
subsum += arry[i];
if(subsum == sum-subsum){
list.add(i);
}
for(int j=i+1;j<arry.length;j++) { if(subsum == sum-subsum-arry[j]) {
list.add(j);
}
}
}
System.out.println(list.size()+";"+list.get(0));
}
}
/*
* 4,模拟一个trim功能一致的方法。去除字符串两端的空白
* 思路:
* 1,定义两个变量。
* 一个变量作为从头开始判断字符串空格的角标。不断++。
* 一个变量作为从尾开始判断字符串空格的角标。不断--。
* 2,判断到不是空格为止,取头尾之间的字符串即可。
*/
public class StringTest_4 { /**
* @param args
*/
public static void main(String[] args) { String s = " ab c "; s = myTrim(s);
System.out.println("-" + s + "-");
} public static String myTrim(String s) { int start = 0, end = s.length() - 1; while (start <= end && s.charAt(start) == ' ') {
start++;
}
while (start <= end && s.charAt(end) == ' ') {
end--;
}
return s.substring(start, end + 1);
} }
/**
* @author QiaoJiafei
* @version 创建时间:2016年1月25日 上午11:52:50
* 类说明 获取最大子串。思路每次循环从子串的第一个位置开始start,以子串总长度-i结束end。整体依次往右移,这样循环。i代表循环次数,从0开始
*/
public class StringContents { public static void main(String[] args) {
// TODO Auto-generated method stub
String s1 = "asdflkjljsodfjiosdjf";
String s2 = "jsodfjia";
fff(s1, s2);
} public static void fff(String s1, String s2) {
boolean flag = false;
int len = s2.length();
for (int i= 0; i< len; i++) {
for (int a = 0,b=len-i; b<=len; a++,b++) {
String s = s2.substring(a, b);
//System.out.println(s);
if(s1.contains(s)) {
System.out.println("index:"+s1.indexOf(s));
System.out.println(s);
flag = true;
return;
}
}
if(flag) {
break;
}
}
}
}
public class Test {  
public static void main(String args[]) {
int [] arry = {5,45,2,1,8,6,12};
Test t = new Test();
}
//冒泡排序
void maoP(int a[]) {
int temp = 0;
for (int i=0;i<a.length-1;i++) {
for(int j=0; j<a.length-1-i; j++) {
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
void prin(int a[]) {
for (int i=0; i<a.length; i++) {
System.out.print(a[i] + " ");
}
} //选择排序
void xuanZ(int a[]) {
for(int i=0; i<a.length; i++) {
//int p = a[i];
int temp = 0;
for (int j=i+1; j< a.length; j++) {
if (a[j] < a[i]) {
temp = a[i];
a[i] = a[j];
a[j] =temp;
//a[j] = temp;
}
}
}
} //快速排序
void kuaiS(int []a, int low, int high) {
if (low < high) {
int mid = kP(a, low, high);
kuaiS(a, low, mid-1);
kuaiS(a, mid+1, high);
}
}
int kP(int []a, int low, int high) {
int temp = a[low];
while (low < high) {
while (low < high && temp <= a[high]) {
high--;
}
a[low] = a[high];
while (low < high && temp >= a[low]) {
low++;
}
a[high] = a[low];
}
a[low] = temp;
return low;
}
//二分查找-普通循环
int erF(int a[], int tp) {
int mid = a.length/2;
int start = 0;
int end = a.length-1;
while (start <= end) {
mid = (end - start)/2 + start;
if (tp == a[mid]) {
return mid;
} else if (tp < a[mid]) {
end = mid -1;
} else if (tp > a[mid]) {
start = mid + 1;
} else {
return mid;
}
}
return -1;
}
//二分查找-递归
int erFeD(int a[],int dex, int start, int end) {
int mid = (end - start)/2 + start;
if (a[mid] == dex) {
return mid;
}
if (end <= start) {
return -1;
} else if (a[mid] > dex) {
return erFeD(a, dex, start, mid-1);
} else if (a[mid] < dex) {
return erFeD(a, dex, mid+1, end);
}
return -1;
}
//顺序查找
int shunX(int a[], int dex) {
for (int i=0; i< a.length-1; i++) {
if(a[i] == dex) {
return i;
}
}
return -1;
} //阶乘
void jieC(int temp) {
int f = 1;
for (int i=1; i<=temp; i++) {
f = f*i;
}
System.out.println(f);
}
//阶乘相加
void JieChJ(int temp) {
int sum = 0;
int f = 1;
for (int i=1; i<=temp; i++) {
f *= i;
sum += f;
}
System.out.println(sum);
}
//阶乘相加2
int jieC1(int temp) {
int f = 1;
for (int i=1; i<=temp; i++) {
f = f*i;
}
return f;
}
void jieC2(int temp) {
int sum = 0;
for (int i=1; i<=temp; i++) {
sum += jieC1(i);
}
System.out.println(sum);
}
//1~100的质数
void zhiS() {
for (int i=1; i<100; i+=2) {
boolean flag = true;
for (int j=2; j<i; j++) {
if (i%j == 0) {
flag = false;
break;
}
}
if (!flag) {
continue;
}
System.out.print(i + " ");
}
}
//1~100前5个被3整除的数
void zhengC() {
int temp = 0;
for (int i=1; i<=100; i++) {
if (i%3 == 0) {
temp++;
System.out.print(i + " ");
}
if (temp == 5) {
break;
}
}
}
}

输出:

0

12

345

6789

    static void fString() {
String s = "0123456789";
int sum = 0;
for(int i=0;i<4;i++) {
sum +=i;
System.out.println(s.substring(sum, sum+i+1));
}
}

一个数组中的元素出现了3次的值

    private static int getArrayValue(int array[]) {
// TODO Auto-generated method stub
int value = 0;
for(int i=0;i<array.length;i++) {
int count = 0;
for(int j=0;j<array.length;j++) {
if (array[i] == array[j]) {
count ++;
}
}
if(count == 3) {
value = array[i];
}
}
return value;
}

大小写转换

    public static void main(String[] args) {
String u[] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
int num = 123433568;
String s = String.valueOf(num);
char c[] =s.toCharArray(); for(int i=0;i<c.length;i++) {
int j = Integer.parseInt(String.valueOf(c[i]));
System.out.print(u[j]);
}
}

java常用方法总结的更多相关文章

  1. Java 常用方法

    java 图片上传from表单必加属性:enctype="multipart/form-data" 1.获取字符串的长度 : length() 2 .判断字符串的前缀或后缀与已知字 ...

  2. 22 java常用方法

    /** * 通过正则获取该目录下满足条件的所有目录 * @param luceneFilePathRegular 正则目录,如/user/solrindex/正则表达式 * @return 满足正则表 ...

  3. java常用方法

    public static int byte2int(byte b) { int i = b & 0x07f; if (b < 0) { i |= 0x80; } return i; } ...

  4. java常用方法集合

    1.获取当前日期 // 获取当前日期 public Date getDate(int num) { Calendar cal = new GregorianCalendar(); cal.setTim ...

  5. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  6. java中集合类中Collection接口中的Map接口的常用方法熟悉

    1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ...

  7. Java中从控制台输入数据的几种常用方法

    Java中从控制台输入数据的几种常用方法 一.使用标准输入串System.in //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字 //System.in ...

  8. Java String类的常用方法

    String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. String(Sting original) ...

  9. Java基础(30):String对象的常用方法与实例(String类)

    Java 中 String 类的常用方法 Ⅰ String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等,下面我们就来领略它的强大之 ...

随机推荐

  1. 与众不同 windows phone 8.0 & 8.1 系列文章索引

    [源码下载] [与众不同 windows phone 7.5 (sdk 7.1) 系列文章索引] 与众不同 windows phone 8.0 & 8.1 系列文章索引 作者:webabcd ...

  2. Visual Studio中设置默认VC++路径

    菜单"View" -> "Other Windows" -> "Property Manager" 选择对应的配置并修改即可.

  3. 利用javascript、php和ajax实现计算器

    计算器和ajax部分: <?php /** * Created by PhpStorm. * User: Administrator * Date: 16-9-2 * Time: 上午9:20 ...

  4. oGrid 介绍如何从 server 取的资料

    接着前次 oGrid 初探,其中有介绍如何操作local 资料,本次介绍如何从 server 取的资料. 依照 MVC 架构原理以及一条小龙本身经验来看,一个好的架构,必须要有着分工明确的设计层次,让 ...

  5. 【干货分享】Node.js 中文资料导航

    这篇文章与大家分享一批高质量的的 Node.js 中文资料.Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用 Node ...

  6. inherit与auto

    大家是不是和我一样,在刚开始学习css的时候,在css文件开头是不是经常看到这样的代码: * {margin:0 px; padding:0 px;}  . 在接下来设置颜色字体时在body元素的cs ...

  7. SQLServer处理行转列和列转行

    掌握SQL Server 行转列和列转行 1.列转行 数据经过计算加工后会直接生成前端图表需要的数据源,但是程序里又需要把该数据经过列转行写入中间表中,下次再查询该数据时直接从中间表查询数据. 1.1 ...

  8. ArcGIS中的style样式的使用

    MapGIS安装包大小(以M计算)与ArcGIS (以G计算)在数量级存在差异,就可以隐约知道ArcGIS功能的强大.ArcGIS更注重重用(比如符号库.模块等).数据与制图分离(尤其是制图表达最能体 ...

  9. 关于Activity销毁,而绘制UI的子线程未销毁出现的问题

    项目总结 ----------------------------------------------------------------------------------------------- ...

  10. 【原】xcode5.0升级5.1遇到的clang: error: unknown argument: '-fobj-arc'错误

    XCODE5.0升到XCODE5.1后LLVM也从5.0升到5.1,工程报下面的错误了: clang: error: unknown argument: '-fobj-arc' [-Wunused-c ...