美文网首页
Topic16:List集合

Topic16:List集合

作者: KaveeDJ | 来源:发表于2019-01-20 16:57 被阅读8次

16.01 去除ArrayList中重复字符串元素的方式

  • 做判断:新集合中是否包含老集合的元素
  • contains:关键方法,底层依赖的还是equals方法
package com.kevin.list;

import java.util.ArrayList;
import java.util.Iterator;


@SuppressWarnings({ "unchecked", "rawtypes" })
public class Demo1_ArrayList {

    /**
     * @param args
     */
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add("a");
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("v");
        list.add("v");
        
        ArrayList newList = getSingle(list);
        System.out.println(newList);
        
    }

    public static ArrayList getSingle(ArrayList oldList) {
        ArrayList newList = new ArrayList<>();
        Iterator it = oldList.iterator();
        
        while(it.hasNext()) {
            Object obj = it.next();
            if(!newList.contains(obj)) {
                newList.add(obj);
            }
        }
        return newList;
    }
}

16.02 去除ArrayList中重复的自定义对象元素

  • 关键点:如何判断两个自定义对象是否相同
  • contains和remove底层依赖的都是equals方法

16.03 LinkedList的特有功能

  • addFirst和addLast
  • getFirst和getLast
  • removeFirst和removeLast
  • get(int index)

16.04 栈和队列数据结构

  • 栈(压栈)
    • 先进后出
  • 队列(两边开口的管子)
    • 先进先出

16.05 用LinkedList模拟栈的数据结构

  • addLast和removeLast

16.06 泛型的概述和基本使用

  • <>尖括号里面就是泛型,里面写一个引用数据类型,加上泛型,就可以限定集合存储的数据类型
  • 泛型的好处
    • 提高安全性,将运行期的错误转移到编译期
    • 省去了强转的麻烦
  • 泛型的注意事项
    • 必须是引用数据类型
    • 前后泛型要一致
    • 后面的泛型可以省略(1.7版本的新特性,菱形泛型
    • 泛型最好不要定义成Object,因为没有意义

16.07 ArrayList存储字符串和自定义对象并遍历(泛型版)

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

16.08 泛型的由来

  • 早期都是用Object,后来发现有安全隐患
  • 所以Java通过提供泛型解决了这一问题

16.09 泛型类的概述和使用

  • 泛型类的好处:便于统一方法的参数

16.10 泛型方法

  • 方法的泛型要与类的泛型一致
  • 静态方法必须声明自己的泛型

16.11 泛型接口

  • 类实现一个接口,就是想扩展某种特定的功能,本质就是添加方法,类似于objc中的协议

16.12 泛型高级之通配符

  • 当右边的泛型不确定时,左边可以指定为?
List<?> list = new ArrayList<Integer>();
  • 向下限定,?extends E ,应用场景:集合中只能添加子类对象
  • 向上限定,?super E,应用场景:TreeSet

16.13 增强for的概述和使用

  • 简化数组和集合的遍历
  • 语法:foreach

16.14 ArrayList存储自定义对象并用foreach遍历

for (Person person : list) {
    System.out.println(person);
}

16.15 三种迭代能否删除

  • 普通for循环
    • 记得i--,才能删除元素
  • 迭代器
    • 不能用集合的remove方法,会发生并发修改异常。
    • 用it.remove,迭代器Iterator的remove方法
  • 增强for循环
    • 很遗憾,增强for循环只能删除,不能遍历

16.16 静态导入

  • 用import直接导入方法
  • import static java.util.Arrays.sort;
  • sort(Arr)
  • 一般不用,能看懂就行了

16.17 可变参数的概述和使用

  • int...arr
  • 可变参数其实是一个数组
  • 可变参数底层是把参数封装为一个数组
  • 如果有多个参数,可变参数一定要放到最后

16.18 Arrays工具类的asList()方法的使用

  • 就是数组转集合
  • 可以使用集合中的方法
  • 基本类型的数组转换成集合会将整个数组当做一个对象
  • 数组长度小于集合的size时,会自动扩容
  • 数组的长度大于集合的size时,会打印null
  • 数组并没有重写toString方法,所以要遍历,才能打印

16.19 ArrayList嵌套ArrayList

  • 循环嵌套循环来打印
package com.kevin.generic;

import java.util.ArrayList;

import com.kevin.bean.Person;

public class Demo1_Generic {

    /**
     * @param args
     */
    public static void main(String[] args) {
        ArrayList<ArrayList<Person>> list = new ArrayList<>();
        ArrayList<Person> first = new ArrayList<>();
        first.add(new Person("杨幂", 30));
        first.add(new Person("李冰冰", 33));
        first.add(new Person("范冰冰", 20));
        
        ArrayList<Person> second = new ArrayList<>();
        second.add(new Person("黄晓明", 31));
        second.add(new Person("赵薇", 40));
        second.add(new Person("陈坤", 28));
        
        list.add(first);
        list.add(second);
        
        for (ArrayList<Person> a : list) {
            for (Person person : a) {
                System.out.println(person);
            }
        }
    }

}

相关文章

  • Topic16:List集合

    16.01 去除ArrayList中重复字符串元素的方式 做判断:新集合中是否包含老集合的元素 contains:...

  • java基础-day16-list集合

    List集合 1. List集合 1.1 List集合特征 1.2 List常用方法 2. ArrayList 可...

  • kotlin学习第五天:集合,高阶函数,Lambda表达式

    集合 list集合 list集合分为可变集合与不可变集合。由list of创建的集合为不可变集合,不能扩容,不能修...

  • 2019-01-01

    基于List、Set集合,及工具类Collections集合元素排序整理 List集合 1.1 List集合介绍 ...

  • kotlin练习 ---- 集合练习

    kotlin练习 - 集合练习 Set集合 Set集合创建 Set集合的使用 List集合 List集合创建 Li...

  • java集合之List接口

    List集合存储元素的特点 1、有序(List集合中存储下标) 2、可重复 深入List集合 ArrayList集...

  • 数组和集合(二)

    List集合 与 Java类似,List集合的最大特征就是集合元素都有对应的顺序索引 List集合允许使用重复元素...

  • JAVA基础——List集合

    List集合 List集合代表一个元素有序、可重复的集合、集合中每个元素都有其对应的顺序索引。List集合允许使用...

  • kotlin精讲-第5章(9)list-上

    list集合介绍 list集合怎么定义呢?从概念角度去理解,list集合也叫list列表,存储的元素有序可重复。有...

  • 一文彻底了解List集合

    一、List集合 List集合是Collection子类。ArrayList、LinkedList、Vector分...

网友评论

      本文标题:Topic16:List集合

      本文链接:https://www.haomeiwen.com/subject/lhoxjqtx.html