• 【从零开始学Java笔记】ArrayList类、Collection类和List类


    大家可以关注作者的账号,关注从零开始学Java笔记文集。也可以根据目录前往作者的博客园博客进行学习。本片文件将基于黑马程序员就业班视频进行学习以及资料的分享,并记录笔记和自己的看法。欢迎大家一起学习和讨论。

    【从零开始学Java笔记】目录

    集合的体系结构

    由于不同的数据结构(数据的组织,存储方式),所以Java为我们提供了不同的集合,但是不同的集合他们的功能都是相似,不断怕向上提取,将共性抽取出来,这就是集合体系结构形成的原因

    体系结构:
    怎么学习?最顶层开始学习,因为最项层包含了所有的共性
    怎么使用?使用最底层,因为最底层就是具体的实现

    Collection -> List -> ArrayList

    Collection类

    Collection类的常用功能

    • boolean add(E e)
      void clear()
      boolean contains(Object o)
      boolean isEmpty()
      boolean remove(Object o)
      int size()
      Object[] toArray()
    import java.util.ArrayList;
    import java.util.Collection;
    
    public class CollectionDemo {
    	public static void main(String[] args) {		
    		//创建集合对象
    		//Collection c = new Collection();//Collection是接口,不能实例化
    		Collection c = new ArrayList();//多态,父类引用指向子类对象  
    		
    		//boolean add(E e)  
    		System.out.println(c.add("hello"));//永远可以添加成功,因为ArrayList他允许重复
    		System.out.println(c.add("world"));
    		
    		//void clear():清空集合
    		//c.clear();
    		
    		//boolean contains(Object o)  :判断集合中是否包含指定元素
    		//System.out.println(c.contains("java"));
    		
    		//boolean isEmpty() :是否为空
    		//System.out.println(c.isEmpty());
    		
    		
    		//boolean remove(Object o) :删除元素
    		//System.out.println(c.remove("java"));
    		
    		//int size() :返回集合中的元素个数
    		//System.out.println(c.size());
    		
    		//Object[] toArray()  :将集合转换成一个Object类型的数组
    		Object[] objs = c.toArray();
    		for (int i = 0; i < objs.length; i++) {
    			System.out.println(objs[i]);
    		}
    		
    		
    		
    		System.out.println(c);
    	}
    }
    
    

    集合的遍历方式

    1.toArray(),可以把集合转换成数组,然后遍历数组即可
    2.iterator(),可以返回一个迭代器对象,我们可以通过迭代器对象来迭代集合
    3.foreach方法
    4.不能用for循环,因为Collection类没有索引,但是Colletion的子类可以,因为他们有索引

    Iterator:可以用于遍历集合

    • E next() :返回下一个元素

      注意:Exception in thread "main" java.util.NoSuchElementException使用next方法获取下一个元素,如果没有元素可以获取,则出现NoSuchElementException

    • boolean hasNext() :判断是否有元素可以获取

    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    
    public class InterationDemo {
    	public static void main(String[] args) {
    //		method();
    //		method1();
    	}
    
    	private static void method1() {
    		//创建集合对象
    		Collection c = new ArrayList();
    		//添加元素
    		c.add("hello");
    		c.add("world");
    		c.add("java");
    		
    		//获取迭代器对象
    		Iterator it = c.iterator();
    		
    		//Object next()  :返回下一个元素
    		//boolean hasNext()  :判断是否有元素可以获取
    				
    		while(it.hasNext()) {
    			System.out.println(it.next());
    		}
    	}
    
    	private static void method() {
    		//创建集合对象
    		Collection c = new ArrayList();
    		//添加元素
    		c.add("hello");
    		c.add("world");
    		c.add("java");
    		//获取数组
    		Object[] objs = c.toArray();
    		//遍历数组
    		for (int i = 0; i < objs.length; i++) {
    			System.out.println(objs[i]);
    		}
    	}
    }
    
    

    List类

    List的特点

    • 有序的(存储和读取的顺序是一致的)
      有整数索引
      允许重复的

    List的特有功能(增删改查)

    • void add(int index, E element)
      E get(int index)
      E remove(int index)
      E set(int index, E element)
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class ListDemo {
    	public static void main(String[] args) {
    		//创建的列表对象
    		List list = new ArrayList();
    		
    		//void add(int index, E element)  : 在指定索引位置添加指定元素
    		list.add(0, "hello");
    		list.add(0, "world");
    		list.add(1, "java");
    		
    		//E get(int index)  :根据索引返回元素
    		//遍历		
    		for (int i = 0; i < list.size(); i++) {
    			System.out.println(list.get(i));
    		}
    		System.out.println("-----------------");
    		//E remove(int index)  : 删除指定元素并返回	
    		System.out.println(list.remove(2));
    		System.out.println("-----------------");
    		//E set(int index, E element) : 将指定索引位置的元素替换为指定元素,并将原先的元素返回
    		System.out.println(list.set(0, "android"));
    		
    		System.out.println(list);
    	}
    }
    输出结果
    world
    java
    hello
    -----------------
    hello
    -----------------
    world
    [android, java]
    
    

    List的子类

    List的常用子类:
    ArrayList:底层是数组结构,查询快,增删慢
    L inkedList:底层结构是链表,查询慢,增删快

    如何选择使用不同的集合?
    如果查询多,增删少,则使用ArrayList
    如果查询少,增删多,则使用LinkedList

    LinkedList的特有功能

    • void addFirst(E e)
      void addLast(E e)
      E getFirst()
      E getLast()
      E removeFirst()
      E removeLast()
    public class LinkedListDemo {
    	public static void main(String[] args) {
    		LinkedList list = new LinkedList();
    		list.add("hello");
    		list.add("world");
    		System.out.println(list);
    		System.out.println("-----------------");
    		
    		// void addFirst(E e) :将元素添加到索引为0的位置
    		// void addLast(E e) :将元素添加到索引为size()-1的位置
    		list.addFirst("java");
    		list.addLast("android");
    		System.out.println(list);
    		System.out.println("-----------------");
    		
    		// E getFirst() :获取索引为0的元素
    		// E getLast() :获取索引为size()-1的元素
    		System.out.println(list.getFirst());
    		System.out.println(list.getLast());
    		System.out.println("-----------------");
    		
    		// E removeFirst() :删除索引为0的元素并返回
    		// E removeLast() :删除索引为size()-1的元素并返回
    		System.out.println(list.removeFirst());
    		System.out.println(list.removeLast());
    		System.out.println(list);
    		System.out.println("-----------------");
    	}
    }
    输出结果
    [hello, world]
    -----------------
    [java, hello, world, android]
    -----------------
    java
    android
    -----------------
    java
    android
    [hello, world]
    -----------------
    

    ArrayList类

    集合类的特点:长度可变

    ArrayList:大小可变数组的实现,:是一种特殊的数据类型,泛型。在出现E的地方我们使用引用数据类型替换即可,例如: ArrayL ist , ArrayL ist

    构造方法

    ArrayList<String> array = new ArrayL ist<String>();

    成员方法

    添加元素
    public boolean add(E e) :添加元素
    public void add(int index,E element) :在指定的索引处添加一个元素
    获取元素
    public E get(int index) :返回指定索引处的元素
    集合长度
    public int size( ):返回集合中的元素的个数
    删除元素
    public boolean remove(0bject o) :册余指定的元素,返回删除是否成功
    public E remove(int index) :删除指定索引处的元素,返回被删除的元素
    修改元素
    public E set(int index,E element ) :修改指定索引处的元素,返回被修改的元素

    这里简单举个例子,就是老生常谈的学生管理系统。但是由于篇幅较长,就不在这里写了,具体请在相应章节博客寻找。

  • 相关阅读:
    日记2014/06/25
    Cocos2dx 3.1.1 学习笔记整理(4):事件监听与Action的初步使用
    Cocos2dx 3.1.1 学习笔记整理(3):逐帧动画
    Cocos2dx 3.1.1 学习笔记整理(2):创建场景与载入图片
    Cocos2dx 3.1.1 学习笔记整理(1) 新建项目
    5-20
    5-19
    5-18
    5-17
    5-16
  • 原文地址:https://www.cnblogs.com/zllk/p/12656898.html
Copyright © 2020-2023  润新知