Java4Android by mars (40--43)学习笔记

40.Java当中的数组

数组和对象属于引用数据类型

 
 
//数组的静态声明法,中括号[] 的位置可以写在变量的前面或者后面
int arr [] = {5,2,7,9,0};
/arr.length 得到数组长度
 
  
//数组的动态声明法 ,注意要声明数组长度,不然会报错
int arr [] = new int[10];
数组的默认值
int                :0
boolean       :false
char            :ASCII 编码为0的字符(空字符null)

二维数组:数组当中的元素还是数组
数组的缺点:数组的长度是固定的
41.类集框架(一)
1.类集框架是JDK中提供的一系列类和接口
2.位于java.util包中
3.主要用于存储和管理对象
4.主要分为三大类---- 集合、列表和映射。

集合(Set): 集合中的对象不按照特定的方式排序,并且没有重复对象
列表(List):列表中的对象按照索引位置排序,可以有重复对象
映射(Map):每一个元素包含一个键对象和一个值对象,键不可以重复,值可以重复

最顶层的接口就是Iterator和Collection接口  Set接口和List接口都是Collection接口的子接口
Collection接口是Iterator的子接口

ArrayList 是List的实现类   add(),remove(),get(),size()

import java.util.List;
import java.util.ArrayList;
public class Test {
  public static void main(String args[]){
	  ArrayList<String> arrayList = new ArrayList<String>();
	  //类似于数组,但是长度可以无限延伸
	  //但是要指定存放什么类型的对象<泛型>,也可指定自定义类
      //比如ArrayList<Student> arrayList = new ArrayList<Student>
	  
	  arrayList.add("a");//添加对象
	  arrayList.add("b");
	  arrayList.add("c");
	  
	 String s = arrayList.get(1);//取出  第一个元素 “b”。注意“a”是第0个元素
    
	 arrayList.remove(1);//移除“b”,“c"自动替补原来“b”的位置
	 
	 //arrayList.size();   得到arrayList的长度
	 for(int i = 0;i<arrayList.size();i++)
		 System.out.println(arrayList.get(i));
	  
  }
  
}

ArrayList 和数组相比最大的好处是长度不限,而数组在声明时就必须固定长度

42.类集框架(二)

Collection和Iterator接口 

Set接口和List接口都是Collection接口的子接口

HashSet是Set的实现类  也要用到泛型

import java.util.Set;
import java.util.HashSet;
public class Test {
  public static void main(String args[]){
	  //泛型声明String :这个集合对象当中所存储的元素都是Stirng类型的
	  HashSet<String> hashSet = new HashSet<String>();
	  Set<String> set = hashSet;//向上转型成Set类型
	  
	  boolean b = set.isEmpty();
	  System.out.println(b);//打印出true
	  
	  set.add("a");
	  set.add("b");
	  set.add("c");
	  set.add("d");
	  
	  set.add("c");//重复添加“c”,长度是4  (集合中不会有重复的元素)
	  int i = set.size();
	  System.out.println(i);
	  
	  set.remove("b"); 
  }
  
}
由于集合(Set)中的元素是无序的,和List不一样。List是根据把元素加进去的顺序给元素分配一个下标 ,要想取出元素,直接调用get(元素下标)。
而集合中的元素没有下标,需要用迭代器Iterator。---- Iterator接口   iterate(迭代)
继承关系:Iterator <--- Collection <--- Set <-- HashSet

Iterator中的方法 :hasNext()  next()  


最开始游标并不指向任何元素,而是在所有元素的最前面,如图
hasNext():返回boolean , 该返回值表示游标的后面还有没有下一个元素
next():返回游标所指位置的下一个元素,并将游标向后移

public class Test {
  public static void main(String args[]){
	  Set<String> set = new HashSet<String>();
	  
	  set.add("a");
	  set.add("b");
	  set.add("c");
	  set.add("d");
	
	  //调用Set对象的iterator()方法生成一个迭代器对象,该对象用于遍历整个Set
	  Iterator<String> it = set.iterator();
	  while(it.hasNext()){
		  String s = it.next();
		  System.out.println(s);
		 
	  }
	 
  }
  
}
继承关系:Iterator <--- Collection <--- Set <-- HashSet
                                                      <---List <--ArrayList

List也可以用iterator()生成一个迭代器对象来取元素,但它有更方便的取法get().
Set只有这一种取法


43.类集框架(三)
Map <---HashMap  键值对    JDK帮助文档
put(),get(),size()

public class Test {
  public static void main(String args[]){
	  
     HashMap<String,String> hashMap = new HashMap<String,String>(); 
	 Map<String,String>  map = hashMap;//向上转型,注意要写泛型<>
	  
	  map.put("1", "a");
	  map.put("2", "b");
	  map.put("3", "c");
	  map.put("4", "d");
	  
	  int i = map.size();
	  System.out.println(i);
	  
	  map.put("3", "e");//如果相同的键put(),新的值会覆盖原来的值
	  String s = map.get("3"); 
	  System.out.println(s);
	 
  }
  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值