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 没办法不安全啊!


1 0