Day_one
来源:互联网 发布:成都外包seo 编辑:程序博客网 时间:2024/06/06 19:29
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=newsingleton();
public static singleton getinstance(){
return s1;
}
}
该单例模式是线程安全的,全都是static 和 private 没办法不安全啊!