Collection的分类

1.关系图在这里插入图片描述主要是
集合Collection 抽象接口——实际开发中需要一个能随时改变的数组

  • 定义集合的相关操作
  •    list 抽象接口 列表 数组(特点:有序 可重复)
    
  •           ArrayList
    
  •           LinkedArrayList
    
  •    Set 抽象接口“集合” 特点:无序 不重复
    
  •           (SortSet)HashSet
    
  • Collection与数组的区别
  • 数组存储多个对象
  • 弊端:数组的长度不可变,内容可变

一些基本方法
在这里插入图片描述
先是Collection的方法 代码
在这里插入图片描述在这里插入图片描述接下来是比较重要的遍历
在这里插入图片描述以上是Collection的方法 只要是其子类 皆可使用
接下来是ArrayList LinkedArrayList的学习
在这里插入图片描述
开始代码
// ArrayList score = new ArrayList<>();
// score.add(2);
// score.add(3);//在末尾添加
// score.add(0,2); //在指定位置插入
// System.out.println(score);
//
// //访问指定元素
// System.out.println(score.get(2));

// System.out.println("=================");
// //修改一个元素
// score.set(0,1);
// System.out.println(score);
//
// //删除
// score.remove(0);//删除指定位置的元素
// score.remove((Integer)2);//删除指定的对象
// score.clear();//删除所有 清空
// System.out.println(score);
//
// ArrayList a1 = new ArrayList<>();
// a1.add(1);
// a1.add(2);
// a1.add(3);
// //将一个集合里的内容添加到当前集合
// score.addAll(a1);
// System.out.println(score);
//
// ArrayList a2 = new ArrayList<>();
// a2.add(1);
// a2.add(2);
// //取两个集合的交集
// score.retainAll(a2);
// System.out.println(score);
//
// //访问某个对象在集合里的索引
// ArrayList a4 = new ArrayList<>();
// a4.add(1);
// a4.add(2);
// a4.add(2);
// a4.add(1);
// System.out.println(a4.indexOf(1)); //第一次出出现的位置
// System.out.println(a4.lastIndexOf(1)); //最后一次出出现的位置
// System.out.println(a4.indexOf(3));
//
// //将ArrayList转换为普通数组
// Integer[] objects = new Integer[a4.size()];
// a4.toArray(objects);
// System.out.println(objects);
// for (Integer i:objects){
// System.out.println(i);
// }
//
// Iterator iterator1 = a4.iterator();
// while (iterator1.hasNext()){
// System.out.println(iterator1.next());
// }
//
// // Object[] objects1 = new Object[];
//
// //删除某个范围内的对象
// System.out.println("----------------");
// //
// System.out.println( a4.subList(1,1));

/
// ArrayList nums = new ArrayList<>();
// nums.add(1);
// nums.add(2);
// nums.add(3);
// nums.add(4);

// for (Integer ele:nums){
// if (ele %2 == 0){
// nums.remove(ele);
// }
// }

// for (int i = 0; i < nums.size(); i++) {
// Integer obj = nums.get(i);
// System.out.println("-------------------");
// System.out.println(nums);
// if (obj %2 == 0){
// nums.remove(i);
// i–;
// }
//
// }
// System.out.println(nums);

    //1.使用方式:定义一个类实现接口

// ArrayClass ac = new ArrayClass();
// int[] num = {1,2,3,4,5,6};
// GSClass gc = new GSClass();
// ac.test(num,gc);
//
// //2,使用匿名类
// ArrayClass ac = new ArrayClass();
// int[] num = {1,2,3,4,5,6};
// ac.test(num,new Show(){
// @Override
// public void customShow(int element){
// System.out.println(element);
// }
// });

// //3,使用匿名类
// ArrayClass ac = new ArrayClass();
// int[] num = {1,2,3,4,5,6};
// ac.test(num,(int element) -> {
// System.out.println(element);
// });

    //4.如果只有一个参数 参数的类型可以省略

// ArrayClass ac = new ArrayClass();
// int[] num = {1,2,3,4,5,6};
// ac.test(num,element -> {
// System.out.println(element);
// });

    //5.如果代码块里只有一行语句 大括号可以省略

// ArrayClass ac = new ArrayClass();
// int[] num = {1,2,3,4,5,6};
// ac.test(num,element -> System.out.println(element));

// Person zs = new Person(“张三”,30);
// Person ls = new Person(“李四”,33);
// Person zy = new Person(“张一”,29);
// Person we = new Person(“王二”,30);
//
// ArrayList al = new ArrayList<>();
// al.add(zs);
// al.add(ls);
// al.add(zy);
// al.add(we);
//
// int countAge = 0;
// int countName = 0;
//
// for (Person p:al){
// if (p.age > 30||p.age == 30){
// countAge++;
// }
// if (p.name.contains(“张”) ){
// countName++;
// }
// }
// System.out.println(“超过三十的人数为:”+countAge+“姓氏为张的人数为:”+countName);
//
// ArrayList a1 = new ArrayList<>();
// a1.add(1);
// a1.add(5);
// a1.add(3);
// a1.add(4);
// a1.sort(new Comparator() {
// @Override
// public int compare(Integer integer, Integer t1) {
// int i = 01 > 02 ? 1 : -1;
// System.out.println(01+":"+02);
// return i;
// }
// });

// a1.sort(new GSCompare());
// System.out.println(a1);

// a1.sort(new Comparator() {
// @Override
// public int compare(Integer integer, Integer t1) {
//
// return integer-t1;
// }
// });
//
// a1.sort((Integer i1,Integer i2) -> {
// return i1 - i2;
// });
// System.out.println(a1);

    List<Person> al = new ArrayList<>();
    Person zs = new Person("张三",37);
    Person ls = new Person("李四",33);
    Person zy = new Person("张一",29);
    Person we = new Person("王二",30);

    al.add(zs);
    al.add(ls);
    al.add(zy);
    al.add(we);

    

}

}

class GSCompare implements Comparator{

//什么时候需要自己手动创建比较器
//如果系统默认的方法不能完成我们的比较

//参与比较的对象
@Override
public int compare(Object o, Object t1) {
    int mo = (int)o;
    int mti = (int)t1;
    return mo-mti;
}

}
//Lambda表达式
// nums.removeIf(ele -> ele %2 == 0);

//闭包 把函数作为一个方法的参数
class ArrayClass{
public void test(int[] target,Show s){
for (int element:target){
s.customShow(element);
}
}
}

//必须是接口 这个接口里面只有一个方法
interface Show{
void customShow(int element);
}
class GSClass implements Show{
@Override
public void customShow(int element) {
System.out.println(element);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值