java基础----集合框架知识点总结(一)

                                   **第一个类   Collention类 **

一、概述。
1、该类是集合类的基本接口,它位于集合类的顶层。Collection接口的定义如下:

public interface Collection<E> extends Iterable<E>

2、此类使用了泛型技术,有利于集合的安全性。
3、此类是List接口和Set接口的父接口
二、方法摘要。
1)向集合中添加一个元素: boolean add(E e)
2) 清除集合中所有的元素: boolean clear()
3) 判断是否存在所指定的元素: boolean contains(Object o)
4) 判断集合是否为空: boolean isEmpty()
5)删除指定的元素: boolean remove(Object o)
6)返回集合中元素的个数: int size()
所有实现Collection接口的类都必须提供两个标准的构造函数:
1)无参数的构造函数。
2)一个带有Collection参数的有参构造函数。

                                   第二个类   List类
一、概述。
1、 List 接口是一个有序的集合,其元素以线性方式存储,集合中允许存放相同的元素。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
2、List接口的两个实现类为ArrayList和LinkedList。
3、其接口定义如下:

public interface List<E> extends Collection<E>

二、方法摘要。
1)、在集合的指定位置添加元素:void add(int index, E element)
2)、返回集合中指定位置的元素:E get(int index)
3)、移除指定位置的元素: E remove(int index)
4)、替换指定位置的元素: E set(int index, E element)
5)、为ListIterator接口实例化,用户遍历集合中元素(特有方法):ListIterator<E> listIterator()
6)、返回按适当顺序在列表的元素上进行迭代的迭代器。Iterator iterator() `

示例:

package 泛型;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class ListIteratorTest {

    public static void main(String[] args){
        //List是个接口,可以通过ArrayList类实例化。
        List<String> list=new ArrayList<String>();
        //添加元素
        list.add("haha");
        list.add("xixi");
        list.add("lala");
        list.add("enen");
        sop(list);
        //获取迭代器用于操作元素。
        ListIterator<String> it=list.listIterator();
        //取出集合中的元素
        while(it.hasNext()){
            String s=(String)it.next();
            sop(s);
            //修改元素
            if(s.equals("enen"))
                it.set("heihie");

        }
        it.add("yaya");//通过迭代器添加元素。
        sop(list);
    }

    private static void sop(Object obj) {
        // TODO Auto-generated method stub
        System.out.println(obj);
    }
}

                                   第三个类   ArrayList类和Vector类
一、概要。
1、此类是List接口的实现类。
2、此类的底层数据结构是数组。
3、此类的容量就是数组的大小。
4、此类实现数据的查询速度块,但是实现增、删效率慢。
5、此类是不同步的。
二、构造方法摘要。
1、 ArrayList() 构造一个初始容量为 10 的空列表。
2、`ArrayList(Collection

package 泛型;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/*
 * Collection
 *      |--List:元素是有序的,元素可以重复,因为该体系有索引
 *          |--ArrayList:底层的数据结构使用的是数组。特点:查询数据很快,但是增,删慢。线程不同步
 *          |--LinkedList:底层使用的是链表。特点:增删的速度快,增删的很慢
 *          |--Vector:底层使用的是数组数据结构。线程同步,速度非常慢,被ArrayList代替
 * List:特有的方法,凡是可以操作角标的地方都是该体系特有的方法
 * 
 * 增:
 *      add(index,element);
 *      addAll(index,Collection)
 * 删:
 *      remove(index);
 * 
 * 改:
 *      set(index,element)
 * 
 * 查:   
 *      get(index)
 *      subList(from,to)
 *      ListIterator();
 * 
 * 
 * 
 */
public class ListDemo {

    public static void main(String[] args){
        ArrayList list=new ArrayList();

        //添加元素

        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");

        sop(list);

        //增加元素

        list.add(0,"0");
        sop(list);

        ArrayList al=new ArrayList();
        al.add("haha");
        al.add("xixi");
        al.add("wei");
        list.add(0,al);
        sop(list);
        list.addAll(0,al);
        sop(list);

        //删除元素

        list.remove(0);
        sop(list);

        //修改元素

        list.set(2,"haha");
        sop(list);

        //查元素

        sop(list.get(0));

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

        Iterator it=list.iterator();//获取迭代器用于取出集合中的元素,只能进行判断,删除,取出的操作
        while(it.hasNext()){
            sop(it.next());
        }
        //list特有的迭代器功能齐全
        ListIterator li=list.listIterator();
        while(li.hasNext()){
            Object obj=li.next();
            if(obj.equals("1"))
                li.set("aiyouwei");
        }

        sop(list);
        //获取元素的索引

        sop(list.indexOf("wei"));

        List l=list.subList(0, 5);
        sop(l);

        while(li.hasPrevious())//逆向遍历列表
            sop(li.previous());

    }
    public static void sop(Object obj){
        System.out.println(obj);
    }

}

Vector类
示例:

package 泛型;
/*
 * 枚举是Vector特有的取出方法
 * 其实枚举和迭代是一样的,因为枚举的名称以及方法的名称都过长,所以被迭代器取代了
 */
import java.util.Enumeration;
import java.util.ListIterator;
import java.util.Vector;

public class VectorDemo {

    public static void main(String[] args){
        Vector v=new Vector();
        v.add("1");
        v.add("2");
        v.add("3");
        v.add("4");

        Enumeration e=v.elements();

        while(e.hasMoreElements())
            System.out.println(e.nextElement());




        ListIterator li=v.listIterator();
        while(li.hasNext()){
            Object obj=li.next();
            if(obj.equals("1"))
                li.set("aiyouwei");
        }

    }
}


                                   第四个类   LinkedList类
一、概要。
1、此类是链表类,采用链表接口保存元素。
2、此类的优点在于删除、插入元素效率较快。
3、此类是不同步的。
二、构造方法摘要。
1、 LinkedList() 构造一个空列表。
2、LinkedList(Collection<? extends E> c) 构造一个包含指定 collection 中的元素的列表
三、方法摘要。
1、void addFirst(E e) 将指定元素插入此列表的开头。
2、void addLast(E e) 将指定元素添加到此列表的结尾。
3、E getFirst() 返回此列表的第一个元素。
4、E getLast() 返回此列表的最后一个元素。
在JDK1.6之后的新方法。
5、boolean offerFirst(E e) 在此列表的开头插入指定的元素。
6、boolean offerLast(E e) 在此列表末尾插入指定的元素。
7、E peekFirst() 获取但不移除此列表的第一个元素;如果此列表为空,返回为null 。
8、E peekLast() 获取但不移除此列表的最后一个元素;如果此列表为空,返回null。
9、E pollFirst() 获取并移除此列表的第一个元素;如果此列表为空,则返回 null。
10、E pollLast() 获取并移除此列表的最后一个元素;如果此列表为空,则返回 null。
示例一:

package 泛型;

import java.util.Iterator;
import java.util.LinkedList;

/*
 * LinkList特有的方法:
 * addFirst()
 * addLast()
 * 
 * getFirst()
 * getLast()
 *获取元素但不删除元素,如果集合中没有元素,会抛出NoSuchElementException
 *
 *removeFirst()
 *removerLast()
 *获取元素但是元素被删除,如果集合中没有元素,会出现NoSuchElementException
 *
 *在JDK1.6出现了替代方法
 *
 *offerFirst()
 *offerLast()
 *
 *peekFirst()
 *peekLast()
 *获取元素但不是元素被删除,如果集合中没有元素,会返回null
 *
 *pollFirst()
 *pollLast()
 *获取元素但是元素被删除,如果集合中没有元素,会出现NoSuchElementException
 * 
 */
public class LinkListDemo {

    public static void main(String[] args){
        LinkedList list=new LinkedList();

//      list.add("1");
//      list.add("2");
//      list.add("3");
//      list.add("4");
//      sop(list);

//      list.addFirst("1");
//      list.addFirst("2");
//      list.addFirst("3");
//      list.addFirst("4");
//      sop(list);

        list.addLast("1");
        list.addLast("2");
        list.addLast("3");
        list.addLast("4");
        sop(list);

        sop(list.getFirst());
        sop(list.getLast());

        Iterator it=list.iterator();

         while(it.hasNext())
             sop(it.next());
         sop(list.removeFirst());
         sop(list.removeLast());
         sop(list);
    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

示例二:

package 泛型;

import java.util.LinkedList;

/*
 *使用linkedList模拟队列或者堆栈数据结构
 *
 *队列:先进先出
 *堆栈:先进后出
 */
class duiLie{
    private LinkedList link;
    duiLie(){
        link=new LinkedList();
    }
    public void myAdd(Object obj){
        link.addFirst(obj);
    }
    public Object getElement(){

        return link.removeLast();
    }
    public boolean isNull(){
        return link.isEmpty();
    }
}
public class LinkedListTest {

    public static void main(String[] args){
        duiLie link=new duiLie();
        link.myAdd("1");
        link.myAdd("2");
        link.myAdd("3");
        link.myAdd("4");

        while(!link.isNull())
            System.out.println(link.getElement());
    }
}

示例三:

“`
package 泛型;

import java.util.Iterator;
import java.util.LinkedList;

/*
* 去除linkedlist中相同的元素
*
*/
class newLink{
private LinkedList link=null;
public newLink(){
link=new LinkedList();
}
public LinkedList delete(LinkedList obj){
Iterator it=obj.iterator();
while(it.hasNext()){
if(link.contains(it.next())==false)
link.addLast(it.next());

    }
    return link;
}

}
public class LinkedListTest1 {

public static void main(String[] args){
    LinkedList link=new LinkedList();
    link.add("1");
    link.add("1");
    link.add("2");
    link.add("2");
    link.add("3");
    link.add("3");
    link.add("4");
    link.add("4");
    System.out.println(link);
    LinkedList L=new LinkedList();
    L=new newLink().delete(link);

    System.out.println(L);
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值