Java学习笔记-2

Java学习笔记-2

集合ArrayList

1.长度可变化
2.泛型,集合中全部元素为同一类型,泛型只能是引用类型(例如类的对象),不能是基本类型(可以是String,不能说int这些,因为集合中存储的是地址值,而基本数据类型没有地址值)。要装基本类型就需要使用对应的包装类,除了int对应Integer,char对应Character,其它都是基本类型的首字母大写即可

ArrayList<String> list = new ArrayList<>();

3.直接打印得到的是内容(无内容打印中括号)而不是地址值(其它非基本类型直接打印一般为地址值,ArrayList重写了toString方法)
4.添加内容使用add,注意添加内容类型必须与声明的泛型相同,返回值为添加成功与否的布尔值
5.读取/删除使用get和remove方法,参数为索引值
6.size方法获取集合长度,为包含的元素个数
7.集合作为方法的参数或返回值都是以地址值传送


匿名内部类

1.如果接口的实现类或者父类的子类只需用到一次,就可以省略类的定义

接口名 对象名 = new 接口名(){
       @Override
       实现接口的抽象方法
}
//这样写的效果等同于单独创建一个类通过implements使用接口来做接口实现

2.直接new 接口名,在大括号后直接调用实现的方法即匿名对象

new MyInterface(){
            @Override
            public void mth(){
                System.out.println("匿名对象调用方法!");
            }
        }.mth();

Collection

Collection<String> coll = new ArrayList<>();
//多态性

一、List接口(有序;允许重复;有索引值-可用for遍历)

  1. Vector集合
  2. ArrayList集合(底层为数组,查询快,增删慢)
  3. LinkedList集合(底层为链表,查询慢,增删快)

二、Set接口(无序;不允许重复;无索引值)

  1. TreeSet集合(底层为二叉树,用于排序)
  2. HashSet集合(底层为哈希表+红黑树,存取无序)
    1)LinkedHashSet集合(底层为哈希表+链表,存取有序)

三、所有单列集合有共性的方法

  1. add,remove,clear,isEmpty
  2. contains判断集合中是否包含某个元素,返回布尔值
  3. toArray集合转数组

package day1;

import java.util.ArrayList;
import java.util.Random;

public class day1 {

    //题目4
    public static ArrayList<Integer> smallList(ArrayList<Integer> list)
    {
        ArrayList<Integer> smallList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++)
        {
            if (list.get(i) % 2 == 0)
            {
                smallList.add(list.get(i));
            }
        }
        return smallList;
    }

    public static void main(String[] args) {
        //基本语法
//        ArrayList<String> list = new ArrayList<>();
//        list.add("A");
//        System.out.println(list);
//        String first = list.get(0);
//        list.remove(0);
//        System.out.println(first);
//        System.out.println(list);
//        System.out.println(list.size());
//        list.add(("B"));
//        System.out.println(list.size());

        ArrayList<Integer> list = new ArrayList<>();
        for(int i = 0; i < 20; i++)
        {
            Random random = new Random();
            int x = random.nextInt(100);
            list.add(x);
        }

        for (int i = 0; i < list.size(); i++)
        {
            System.out.print(list.get(i) + " ");
        }
        System.out.println();

        ArrayList<Integer> small = smallList(list);

        for (int i = 0; i < small.size(); i++)
        {
            System.out.print(small.get(i) + " ");
        }
        System.out.println();
        System.out.println();

        //匿名内部类实现抽象方法
        MyInterface itf = new MyInterface() {
            @Override
            public void mth() {
                System.out.println("方法已由匿名内部类实现!");
            }
        };
        itf.mth();

        //匿名对象
        new MyInterface(){
            @Override
            public void mth(){
                System.out.println("匿名对象调用方法!");
            }
        }.mth();
        System.out.println();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值