插入排序
规律
(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)