1.字符串去重
package test; import java.util.ArrayList; import java.util.List; public class javaquchong { public static void main(String[] args) { String str = "abcqweracb";//设定一串字符串 List<String> data = new ArrayList<String>();//定义一个data容器 for (int i = 0; i < str.length(); i++) {//开始进行循环截取str字符串内的字符, String s = str.substring(i, i + 1); //substring开始截取两个字符 if (!data.contains(s)) {//把非data容器内的字符添加到data容器当中 data.add(s); } } for (String s : data) { //for循环将data容器遍历了一遍 ,再把data容器中的数据赋给字符串s System.out.print(s);//输出s里面的值! } } }
2.打印三角形 倒角三角形 梯形 倒角梯形 的星星图案
//矩形 for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ System.out.print("*"); } System.out.println(); } System.out.println("----------------------------"); //三角形 for(int i=0;i<5;i++){ for(int j=0;j<=i;j++){ System.out.print("*"); } System.out.println(); } //梯形 System.out.println("----------------------------"); for(int i1=5;i1<10;i1++){ for(int j1=0;j1<i1;j1++){ System.out.print("*"); } System.out.println(); } System.out.println("----------------------------"); //倒角三角形 for(int i=5;i>0;i--){ for(int j=i;j>0;j--){ System.out.print("*"); } System.out.println(); } System.out.println("----------------------------"); //倒角梯形 for(int i=5;i>1;i--){ for(int j=i;j>0;j--){ System.out.print("*"); } System.out.println(); }
3.java算法
//java排序方法 //冒泡算法 int [] arry={9,8,7,5,2,6,4,3,1}; for(int i=0;i<arry.length-1;i++){ for(int j=0;j<arry.length-1-i;j++){//如果是选择排序的话 就把 j的初始值改为 int j=i+1; j<arry.length;j++ if(arry[j]>arry[j+1]){ int temp=arry[j+1]; arry[j+1]=arry[j]; arry[j]=temp; } } } System.out.println(Arrays.toString(arry)); //系统排序 /*Arrays.sort(arry); System.out.println(Arrays.toString(arry)); */ // } }
//最为重要的还是快速算法
//快速算法 public static void sort(int[] a,int i,int j){ int start = i; int end = j; int key = a[i];//设定一个基值 while(end>start){ //从后往前比较 while(end>start&&a[end]>=key) //如果没有比关键值小的,比较下一个,直到有比关键值小的交换位置,然后又从前往后比较 end--; if(a[end]<=key){ int temp = a[end]; a[end] = a[start]; a[start] = temp; } //从前往后比较 while(end>start&&a[start]<=key)//如果没有比关键值大的,比较下一个,直到有比关键值大的交换位置 start++; if(a[start]>=key){ int temp = a[start]; a[start] = a[end]; a[end] = temp; } //此时第一次循环比较结束,关键值的位置已经确定了。左边的值都比关键值小,右边的值都比关键值大,但是两边的顺序还有可能是不一样的,进行下面的递归调用 } //递归 if(start>i) sort(a,i,start-1);//左边序列。第一个索引位置到关键值索引-1 if(end<j) sort(a,end+1,j);//右边序列。从关键值索引+1到最后一个 } public static void main(String[] args) { int[] a = {100,6,5,77,8,99,10,1,0,2}; int start = 0; int end = a.length-1; sort(a,start,end); for(int i = 0; i<a.length; i++){ System.out.print(a[i]+" "); } }
//单例设计模式
//饿汉式单例类.在类初始化时,已经自行实例化
public class singleton{
private singleton(){}
private static final singleton s1=new singleton();
public static singleton getinstance(){
return s1;
}
}
该单例模式是线程安全的,全都是static 和 private 没办法不安全啊!