0
点赞
收藏
分享

微信扫一扫

基于数据库的全文检索实现

大雁f 03-10 07:00 阅读 3
listjava

 特点

        有序,可重复,有索引。

02d87ad37f864636a5e0731d0ca78076.pngLIst集合的特有方法

4eec8ad25a274411b4fcf3fd99bb1e36.png


/*
 * 目标:掌握List系列集合的特点,以及其提供的特有方法
 * */

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

public class ListTest1 {
    public static void main(String[] args) {
        //1.创建一个ArrayList集合对象(有序、可重复、有索引)
        List<String> list = new ArrayList<>(); //经典代码,将来ArrayList是用的最多的 是一种多态的写法
        //List是一个接口肯定不能new一个List类,要new一个ArrayList实现类
        list.add("蜘蛛精");
        list.add("至尊宝");
        list.add("至尊宝");
        list.add("牛夫人");
        System.out.println(list);
        //2.public void add(int index,E element):在某个索引位置插入元素。
        list.add(2,"紫霞仙子");
        list.add(4,"铁扇公主");
        System.out.println(list);
        //3.public E remove(int index):根据索引删除元素,返回被删除元素
        System.out.println(list.remove(5));
        System.out.println(list);
        //4.public E get(int index): 返回集合中指定位置的元素。
        System.out.println(list.get(2));
        System.out.println(list);
        //5.public E set(int index,E element):修改案引位置处的元系,修改成功后,会返回原来的数据
        System.out.println(list.set(3, "牛魔王"));
        System.out.println(list);

    }
}

List集合支持的遍历方法

  1. for循环(因为List集合有索引)
  2. 迭代器
  3. 增强for循环
  4. Lambda表达式



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

public class ListTest {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("糖宝");
        list.add("蜘蛛精");
        list.add("至尊宝");


        //1.for循环
        for (int i = 0; i < list.size(); i++) {
            //i = 0 ,1 ,2
            String s = list.get(i);
            System.out.println(s);
        }
        System.out.println("-----------------------------------");
        //2.迭代器
        Iterator<String> it = list.iterator();//list调用iterator方法,会获得一个迭代器对象
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        System.out.println("-----------------------------------");
        //3.增强for(foreach遍历 不是forEach方法)
        for (String s : list) {
            //会依次让s变量等于第一个、第二个、第三个数据
            System.out.println(s);
        }
        System.out.println("-----------------------------------");
        //4.JDK 1.8 开始之后的Lambda表达式
        list.forEach(s -> {
            System.out.println(s);
        });

    }
}

ffad756892354f308fa78b29a06d3efb.png

ArrayList集合的底层原理

1.底层原理

基于数组实现的

数组:是连续区域,并且会把这一块连续区域分割成若干的相等的小区域,每块区域都有自己的索引,每块区域都是装自己的数据的。

47c0b76a53744be89cd78b382f966092.png

 0419b1067db547cbb0d31591f0562961.png

2.适合的应用场景

0b1e0813c75d44eabeb8cdd620ea98a6.png

LinkedList集合的底层原理

是基于双链表实现的

90fce4e7638b450d934f06a44c93097e.png 33be21a4a2e741b996a60dd1c0fb1063.pngc8c26ff4618d4b8f881e8482f56a855a.png

 应用场景:

(1)可以用来设计队列(先进先出,后进后出):只是在首尾增删元素,用LinkedList来实现很合适。 

(2)可以用来设计栈(后进先出,先进后出):只是在首增删元素,用LinkedList来实现很合适。 



import java.util.LinkedList;

public class LinkedListTest {
    public static void main(String[] args) {
        //1.创建一个队列
        LinkedList<String> queue = new LinkedList<>();//LinkedList集合就当作队列来看待
        //这里就不要用多态写代码了List没有首尾操作的特有方法是LinkedList基于双链表特有的方法
        queue.addLast("第一");
        queue.addLast("第二");
        queue.addLast("第三");
        queue.addLast("第四");
        System.out.println(queue);
        //出队
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue.removeFirst());
        System.out.println(queue);
        System.out.println("-------------------------------------------");
        //2.创建一个栈对象
        LinkedList<String> stack = new LinkedList<>();//同理,这里不要用多态
        //进栈(push)
        /*stack.addFirst("第一颗子弹");
        stack.addFirst("第二颗子弹");
        stack.addFirst("第三颗子弹");
        stack.addFirst("第四颗子弹");
        stack.addFirst("第五颗子弹");*/
        stack.push("第一颗子弹");
        stack.push("第二颗子弹");
        stack.push("第三颗子弹");
        stack.push("第四颗子弹");
        stack.push("第五颗子弹");//push的底层就是addFirst
        System.out.println(stack);
        //出栈(pop)
        System.out.println(stack.removeFirst());
        System.out.println(stack.pop());//同理pop底层也就是removeFirst
        System.out.println(stack);


    }
}

 

 

举报

相关推荐

0 条评论