排序算法之插入排序以及 常用类

插入排序

规律
(1)两两比较.在数组中,使用arr[1]和arr[0]先比较,
先让前面元素,变成有序.
将当前元素值小的插入到左边元素的前面,
可理解为站队列,小个子在前,大个子在后.
(2)比较次数;数组长度-1次.

public class insertSortTest {
	public static void main(String[] args) {
	//定义一个数组
	int[]arr= {84,26,34,76,91,58,24,61};
	insertSort(arr);
	printArray(arr);
	
	
	}

	public static void insertSort(int[] arr) {
	for(int x=1;x<arr.length;x++) {
		for(int y=x;y>0;y--) {
			if(arr[y]<arr[y-1]) {
				int teep=arr[y];
				arr[y]=arr[y-1];
				arr[y-1]=teep;
			}else {
				break;
					}
				}
			}
	
		}

	public  static void printArray(int[] arr) {
	System.out.println("{");
	for(int x=0;x<arr.length;x++) {
		if(x==arr.length-1) {
			System.out.println(arr[x]+"}");
		}else {
			System.out.println(arr[x]+", ");
					}
				}
			}
	}

String类型转换成int类型

Integer.parselnt(String str)

JDK5以后新特性: 自动拆装箱.
自动装箱:将基本类型提升为引用类型,
自动拆箱:将引用类型降为基本类型.

String类

public boolean equals(Object anObject):判断字符串内容与指定的对象中的内容是否一致!
  • public boolean contains(String s):判断是否包含指定的字符串 (是否包含指定的内容:)
    String类的获取功能:
  •  public char charAt(int index):获取指定索引处的字符
    
  •  public static String valueOf(int i) : 将int类型转换成字符串
    
  •  		valueOf():万能方法,可以将任意的类型转换字符串
    
  •  public String concat(String str):字符串拼接
    
  •  public int length():获取字符串的长度
    

*** 字符串的转换功能:**

  • public char[] toCharArray() (使用居多):将字符串转换成字符数组
  • 将任意类型转换成字符串
  • public static String valueOf(int a)
  • public static String valueOf(char ch)

给定一个int类型的数组,将int数组的中的元素拼接字符串

  • int[] arr = {10,3} ;
  • “[元素1, 元素2, 元素3, … ]”

*方式1:

  •  使用空串拼接
    

*方式2:

  •  使用concat(String another):拼接功能
    

*** 键盘录入字符串,将字符串数据进行反转! (字符串逆序!)**

StringBuffer

public StringBuffer reverse() :将字符串缓冲区的字符串进行反转

String,StringBuffer,StringBuilder的区别

  • String----->StringBuffer
  •  	总结:
    
  •  		a)StringBuffer(String str)
    
  •  		b)StringBuffer()+append(String str)
    
  • StringBuffer —>String
  •  		a)String(StringBuffer buffer)
    
  •  		b)StringBuffer的功能:
    
  •  		  public String toString()
    

Calendar:日历类

public static Calendar getInstance()
利用静态来进行Calendar实例化
public abstract void add(int field, int amount):

  •  	给指定的字段添加或减去时间偏移量!
    
  • 日期类

  • String日期文本格式----->Date日期格式

  • //Date----->String :格式化
    //1)创建日期Date对象
    Date date = new Date() ;
    //2)创建中间的桥梁:创建SimpleDateFormat对象(日期和文本的相互转换)
    //格式:
    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”) ;
    //3)格式化: public final String format(Date date)
    String str = sdf.format(date) ;
    System.out.println(str);

     //将文本格式---->Date日期格式:解析
     //定义文本日期格式
     String dataStr = "2018-05-12" ;
     
     //创建SimpleDateFormat
    
     //模式必须与日期文本格式的模式匹配
     SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd") ;
     // public Date parse(String source) throws ParseException:解析
     //如果解析出问题了,JVM将异常的信息打印在控制台
     Date date2 = sdf2.parse(dataStr) ;
     System.out.println(date2);//Sat May 12 00:00:00 CST 2018
    

Integer:是int类型包装类类型:
character:是char类型包装类类型:

public Integer(int value):将int类型数据构造成Integer类型
int----->String

  •  Intger类中:
    
  •  public static String toString(int value)
    
  •  public static Integer valueOf(int i)	
    
  • String---->int
  •  Integer类中:
    
  •  public static int  pareseInt(String str)
    
  • *Integer存在缓冲区范围
  • {-128,127}
  • random类

获取随机数:两种

  •  Math里面random方法
    
  •  		Math.random();			[0.0,1.0)
    
  •  Random类 :nextInt(int n) 
    
  •  	用法:
    
  •  		Random()空参构造+nextInt(int n):获取随机数
    
  • JDK5很多新特性:增强for

  • 格式:
    for(数据类型(引用类型) 变量名: 集合
    for(String s:list){

    	对象名称){
    	system.out.println(s);
    	
    		输出变量名;
    	}
    	}
    

collection集合的体现结构

collection
list:(有序;允许有重复元素) Arraylist, linkedlist, vector
set: (无序;不允许有重复元素) hashset, treeset

HashSet的add方法:依赖于两个功能:HashMap<K,V>

LinkedList:底层数据结构是一种链接列表

  •  	查询慢,增删快,线程不安全,执行效率高!
    

使用TreeMap集合进行排序
*
*

  • 构造方法
  • TreeMap():空参构造
  • 自然排序---->Comparable
  •  				public int **compareTo**(T t)
    
  • 构造方法:**有参构造
  • TreeMap(Comparator comparator)**
  • 选择器排序---->Comparator
  •  				public int **compares**(T t1,T t2)
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值