黑马程序员_JavaSE基础16 之 基本类型转换 进制转换 拆装箱 List Set

----------------------      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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值