集合:装元素 可以装不同的数据类型 个数没有限制
数组:装元素 只能装类型相同的元素 有个数限制
JCF:java Collections FrameWork
java集合框架
Collection
[单值类型的集合]
Map
[键值对类型的集合]
ArrayList0:
包装类第一个作用:
由于ArrayList底层基于Object[]实现的
所以所有的引用数据类型都可以存放在集合里面
但是基本数据类型不行
为了保证基本数据类型可以存放在集合里面
需要引入包装类的概念
byte x = 34;
//jdk5.0之前 基本数据类型 -》包装类
Byte y = Byte.valueOf(x);//jdk5.0之前
//jdk5.0开始
Byte y = x;//自动打包
Byte x = new Byte(45);
//jdk5.0之前 包装类 -》 基本数据类型
byte y = x.byteValue();//jdk5.0之前
//jdk5.0开始
byte y = x;//自动解包
*:Integer类会自动的缓存:-128 127之间所有的数字
//Integer类会自动缓存:-128 127之间所有的数字
Integer x = -129;//Integer x = new Integer(-129);
Integer y = -129;
System.out.println(x == y);//false
String str1 = "etoak";
String str2 = "etoak";
System.out.println(str1 == str2); // true
包装类的第二个作用:*****
提供一个方法(parseXXX)将String类型转换成对应的基本数据类型
String str = "365.5";
int x = Integer.parseInt(str);
String str = "truee";
boolean x = Boolean.parseBoolean(str);//false
System.out.println(x);
true 转化为 true 其他都是false
*:char类型没有此方法
包装类:Integer:
valueOf() -> static
intValue() -> 非static
parseInt() -> static
ArrayList1:集合的基本用法及特点:
1:如何创建对象:
//jdk5.0之前 默认往集合里面添加的都是Object类型的对象
ArrayList list = new ArrayList();
//jdk5.0开始 可以加泛型
//泛型:只能往集合里面添加哪些元素
ArrayList<泛型> list = new ArrayList<泛型>();
//jdk7.0开始 后面的泛型会自动推断
ArrayList<泛型> list = new ArrayList<>();
2:如何往集合里面添加元素:
a:一次添加一个元素:
list.add(元素);
b:一次添加多个元素:
Collections.addAll(集合,元素1,元素2....);
面试题:
Collection和Collections之间的区别?
Collection是单值类型集合统一的父接口:interface
Collections是集合的工具类:class
3:如何得到集合里面的某一个元素
list.get(下标)
4:如何得到集合的大小
list.size();
5:如何判断集合里面是否出现指定元素
list.contains(元素)
6:如何遍历集合对象:
a:for + 下标
for(int x = 0;x < list.size();x++){
//x -> 下标
//list.get(x) -> 元素
}
b:foreach forin since jdk5.0
for(泛型 x : list){
//x -> 元素
}
c:迭代器
for(得到迭代器对象;判断迭代器是否还有下一个元素;){
取出下一个元素;
}
import java.util.*;
public class Exec3{
public static void main(String[] args){
//创建一个集合对象装名字
ArrayList<String> list = new ArrayList<>();
//一次往集合里面添加一个元素的方式 分别添加:
//Andy Lee
list.add("Andy");
list.add("Lee");
//一次往集合里面添加多个元素的方式 直接添加:
//Anron Jack
Collections.addAll(list,"Anron","Jack");
//System.out.println(list);
//得到集合里面的第三个元素
System.out.println(list.get(2));
//集合里面是否出现Lee这个名字
System.out.println(list.contains("Lee"));
//使用两种方式遍历集合对象 打印以A开头的所有名字
for(int x = 0;x < list.size();x++){
String name = list.get(x);
if(name.startsWith("A")){
System.out.println(name);
}
}
for( String x : list){
if(x.startsWith("A")){
System.out.println(x);
}
}
//使用迭代器打印所有以A开头的名字
//Iterator Integer
// Interator
//hasNext() hashCode()
// hashNext()
for(Iterator<String> car = list.iterator();car.hasNext();){
String name = car.next();
if(name.startsWith("A")){
System.out.println(name);
}
}
}
}
包装类:
由于ArrayList底层基于Object[]实现的
导致所有的引用数据类型都有可以存放在集合里面
但是基本数据类型不能放进集合
为了保证基本数据类也可以放进集合里面 -》 包装类
矿泉水 醋 香油 酱油 白酒 芬达 汽油 可乐
瓶子 坛子 瓶子 瓶子 桶 听 桶 罐
Boolean Character Byte Short Integer Long Float Double
*/
//int x = 45;
//将基本数据类型 -》 包装类
//jdk5.0之前
//Integer y = Integer.valueOf(x);//Object -> toString() ->
//jdk5.0开始
//Integer y = x;//自动打包
Integer x = new Integer(77);
//包装类 -》 基本数据类型
//jdk5.0之前
//int y = x.intValue();
//jdk5.0开始
int y = x;//自动解包