---------------------- android培训、java培训、期待与您交流! ---------------------
JavaSE_16 笔记
Java语言基础之 基本类型转换 进制转换 拆装箱 List Set
1、 Java API 之 基本数据类型对象包装类
① 字符串转换成 基本数据值
XXX parseXXX(String str);
例如:
Int x =Integer.parseInt(“123”)+1 ; // 将字符串转为数值;
② 基本类型转换成 字符串
String.valueOf( 基本类型数值 );
或者用 Integer的静态方法 valueOf(基本类型数值);
③ Integer类的非静态方法进行转换;
例如: Integer i=new Integer(“123”); SOP.( i.intValue() ) ;
2、Integer 类的进制转换
① 十进制 转变为 其它进制
toBinaryString(60 ); toOctalString( 60); toHexString( 60 ); toString( 60, 16);
② 其它进制 转变为 十进制
parseInt( “34”,10 );
3、JDK1.5 自动拆装箱
① Integer i=4 ;// new Integer(4); 自动装箱,简化书写。
i = i +6 ; // i=new Integer( i.intValue()+6 ); // i.intValue() 自动拆箱
4、对一个字符串中的数值进行从小到大的排序
import java.util.Arrays;
/**
*
* @author Wang
*对一个字符串中的数值进行从小到大的排序
*思路:
*1、切割成字符创数组;
*2、变为Int[]
*3、排序
*4、组成stringbuilder
*
*/
public class StringDemo {
private static final String SPACE_SEPRATER=" ";
public static void main(String[] args){
String numStr="20 -1 90 44 -20 ";
System.out.println(numStr);
numStr=sortSringNumber(numStr);
System.out.println(numStr);
}
private static String sortSringNumber(String numStr) {
// 1 切割,变为字符串数组
String[] str_arr=stringToArray(numStr);
// 2 变为int数组
int[] num_arr=toIntArray(str_arr);
// 3 对int[] 进行排序
mySortArray(num_arr);
// 4 将排序后的Int[] 变为字符串
String temp=arrayToString(num_arr);
return temp;
}
//4 int[] 变为 String
private static String arrayToString(int[] num_arr) {
StringBuilder sb=new StringBuilder();
for(int i=0;i<num_arr.length;i++){
sb.append(num_arr[i]+SPACE_SEPRATER);
}
return sb.toString();
}
//3 排序
public static void mySortArray(int[] num_arr) {
Arrays.sort(num_arr);
}
//2 String[] 变为 int[]
public static int[] toIntArray(String[] str_arr) {
int[] arr=new int[str_arr.length];
for(int i=0;i<str_arr.length;i++){
arr[i]=Integer.parseInt(str_arr[i]);
}
return arr;
}
//1 Sring 变为 String[]
private static String[] stringToArray(String numStr) {
String[] str_arr=numStr.split(SPACE_SEPRATER);
return str_arr;
}
}
5. 集合
① int[] :优点是便于对多个数据进行操作;缺点是类型必须一致,而且大小有限。
② StringBuilder : 优点是类型不限,大小不限;缺点是最终必须转为字符串才能用。
③ 集合的由来:Java会产生很多对象,为了对对象进行存储,就产生了集合,它是存储对象的容器。
总结:
数值有很多用 数组存;数组有很多用 二维数组存;数据有很多用 对象存;对象有很多用 集合存。
6. 集合的由来
对象用于存储特有数据,而对象也需要存储,若果对象的个数不确定,就是用集合容器进行存储。
7. 集合的特点和数组的区别
① 用于存储对象的容器。
② 集合的长度是可变的。
③ 集合中不可以存储基本数据类型值。
8. 集合的框架,也称容器的结构:
集合容器因为内容部的数据结构不同,从而有多种具体容器,不断向上抽取就形成了集合框架。
框架的顶层Collection接口:
① 添加
boolean add ( Object obj);
Boolean addAll( Collection coll);
② 删除
Boolean remove ( Object obj);
Boolkean removeAll ( Collection coll);
③ 判断
Boolean contains( object obj );
Boolean containsAll( Collection coll );
Boolean isEmpty(); // 用于判断集合中是否有元素
④ 获取
Int size ();
Iterator iterator(); // 迭代器,用于取出元素的方式
⑤ 其他
Boolean retainAll (Collection coll);取交集
Object[] toArray() ; //集合转为数组
9. 集合框架迭代器的使用
Iterator it=coll.iterator();
while(it.hasNext()){
System.out.println( it.next());
}
注意: 迭代器必须依赖于具体的容器,因为每个容器的数据结构不同,而对于使用者而言,具体的实现不重要,只要通过容器获取到该实现的迭代器的对象即可。
10. Collection子体系之一 List集合
① 特点: 有序(怎么存入就怎么取出);元素都有索引;元素可以重复;
② 特有常见方法
添加: void add(index,element) ; void add(index,collection);
删除: Object remove(index);
修改: Object set( index , element);
获取: Object get(index); int indexOf(Object); int lastIndexOf(Object);
List subList(form,to); //包含from 不包含 to.
③ list特有的取出各个元素的方法
11、ListIterator() ; //是Iterator的子类,因为在迭代过程中,不能使用集合来操作元素,比如list.add(“123”); 于是有ListIterator子接口类完成在迭代中对元素进行操作。
例如:
ListIterator it=list.listIterator();
while(it.hasNext()){
Object obj=it.next();
if(obj.equals("abc1")){
it.add("abc4");
}
}
13、List常用子类 之 Vector
① 内部是数组数据结构 。是同步的。
② 100%延长
③ 增删,查询都很慢。
14、List常用子类 之 ArrayList
① 内部是数组数据结构,是不同步的。效率高,替代了vector。
② 50%延长。
③ 查询速度快,因为空间连续,但增删速度不快,因为需要全部动。
15、List常用子类 之 LinkedList
① 内部是链表数据结构,是不同步的。
② 增删元素的很快。
16、collection 子体系之二 Set
① 特点: 无序;元素不能重复;
2012/9/11 By Mary_k