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

    //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. 使用Dhcpstarv解决DHCP服务器冲突问题

    场景: 内网环境需要开启多个DHCP服务器,分别给不同的设备进行PXE安装. 存在的问题: 多个DHCP的情况下,设备在启动时随机从一个DHCP服务器获取IP(哪个DHCP服务器先响应就从哪个获取)并 ...

  2. 【iOS】Quartz2D绘图路径Path

    一.绘图路径 A.简单说明 在画线的时候,方法的内部默认创建一个path.它把路径都放到了path里面去. 1.创建路径  cgmutablepathref 调用该方法相当于创建了一个路径,这个路径用 ...

  3. Python杨辉三角算法

    #!/usr/bin/env python # -*- coding: utf-8 -*- def triangles(): n = 1 aboveList = [] while True: if n ...

  4. Android 手机卫士17--缓存清理

    清理单个应用缓存 通过反射调用方法 需要权限:android.permission.DELETE_CACHE_FILES. 以上权限为系统权限,手机卫士应用为用户应用,不能拿到此权限 换思路: 调用系 ...

  5. [maven] 生命周期和插件

    maven生命周期和插件 生命周期 maven的生命周期有三套,互相独立.每个生命周期含有不同阶段,常用如下 clean 清理项目 pre-clean 执行清理前需要完成的工作 clean 清理上一次 ...

  6. Mybatis学习记录(五)----Mybatis的动态SQL

    1.  什么是动态sql mybatis核心 对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装. 1.1 需求 用户信息综合查询列表和用户信息查询列表总数这两个statemen ...

  7. DownloadManager 的使用

    一.基本概念    1.DownloadManager是Android 2.3A (API level 9) 引入的,基于http协议,用于处理长时间下载. 2.DownloadManager对于断点 ...

  8. Spring(十)Spring任务调度

    一.计划任务 需要定时执行一些计划(定时更新等),这样的计划称之为计划任务 Spring抽象封装了Java提供的Timer与TimerTask类 也可以使用拥有更多任务计划功能的Quartz 二.Ti ...

  9. 多选按钮(CheckBox)

    今天我们介绍的是Checkbox多选框: 1.Activity //复选框,[基础控件]---状态切换控件CompoundButton及其子类CheckBox.RadioButton.ToggleBu ...

  10. jQuery点击事件绑定onClick和on()

    一.静态绑定 (1)onclick方法 jsp代码 <button href="javascript:;" class="weui_btn weui_btn_min ...