java基础(8Day-Java集合)

Java集合

容器

1.数组
2. String, StringBuilder, StringBuffer(2010面试题)
3. List, Map

IOC 容器的背后就是Map

在这里插入图片描述

	int arr[] = new int[5];
	int aa[] = new int[arr.length + 1];
	arr[0] = 1;
	arr[1] = 2;

	arr[2] = 4;
	arr[3] = 5;
	arr[4] = 6;

	int idx = -1;
	for (int i = 0; i < arr.length; i++) {
		if (arr[i] > 3) {
			idx = i;
			break;
		}
	}
	for (int i = 0; i < idx; i++) {
		aa[i] = arr[i];
	}
	//方法一:
	for (int i = aa.length - 1; i > idx; i--) {
	aa[i] = arr[i - 1];
	}
	aa[idx] = 3;
	
	//方法二:
	for(int i=idx;i< arr.length;i++){
		aa[i+1]=arr[i];
	}
	aa[idx]=3;

	//打印
	for (int i = 0; i < aa.length; i++) {
		System.out.println(aa[i]);
	}

数组的练习

1. 找 最大数
2. 找 最小数
3. 找出最大数的前 2 个, 或 前 3 个
4. 求平均值
5. 删除一个元素
6. 添加一个元素
7. 去重
8. 冒泡排序
9. 数组的二分查找(折半查找) **提高,难度蛮高**
把 人脑当电脑使用: 用你的脑袋去执行自己写的代码
				用你的脑袋去执行别人写的代码
				代码不是用眼睛看懂

集合的List

集合就是容器的意思
List 会取代数组
List 是一个接口,有两个实现类
	ArrayList(基于数组实现的)
	(添加,查询)
	LinkedList(基于链表实现,自行车链条,数据结构单向链表和双向链表)
	(插入,删除,速度快)

ArrayList

1.定义List变量一般用向上转型方式定义
	List list = new ArrayList(); // 定义动态数组 Object[]
	因为 Object 是所有类的祖宗,所以我们添加任意类型的数据
1.add(Object e) //往数组尾部添加一个元素
	导致我们添加的数组全部被向上转型到Object
2.Object obj = get(index)
	返回值Object,因为add添加时候已经向上转型成Object
	index 就是下标(Object[] 的下标)
3.remove(index)删除指定下标的元素
4.size()等同于数组的长度 .length

List遍历方法

        //for()遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        //forEach遍历
        for (Object e:list) {
            System.out.println(e);
        }

小结

List 动态Object 类型的数组,它的长度,size()方法
添加add从下标0开始
获取get(下标)得到Object

装箱拆箱

	//把基本的数据类型转换成对应的对象类型
    List list = new ArrayList<>();// Object[] 动态数组
    Object a;
    a="chen";
    a=1; // 装箱 int 1 ——》 Integer(1);

    // list.add(1) 首先装箱,把 1 ——》 Integer(1) ——》 向上转型 ——》 Object
    list.add(1);
    list.add(101);
    list.add(202);
	list.add("张三");
  	list.add(new Student());
	//拆箱 把Integer包装类 ——》 int基本数据类型  向下转型
	int x = (Integer)list.get(2);// 202
	String s = (String)list.get(2);//类型转换错误,泛型问题
	
基本数据类型 ——》 对应包装类
boolean -> Boolena
int -> Integer
double -> Double
float -> Float
byte -> Byte
char -> Charater
short -> Short
Long -> Long
泛型,帮你解决向下转型问题,帮助完成强转。
	(编译后擦除)泛型只在Java源程序到字节码文件产生前作用。
	(字节码文件没有泛型)
        // List<String>加了泛型,在编译期间帮助检查,杜绝乱堆东西
        List<String> list = new ArrayList<>();
        // list.add(100); // 报红线
        list.add("100");
        String s = list.get(0);// 无需强转,帮助完成向下转型

Java List综合练习

在这里插入图片描述

综合练习

建包

entity ——》 实体类和数据库的表对应
dao ——》 访问的数据库的类(Data access Object)数据访问层
Demo ——》 显示,输入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值