ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

259/260数据结构——红黑树和List集合介绍以及常用方法

2022-07-06 19:33:32  阅读:130  来源: 互联网

标签:259 list 元素 List int add 260 集合


红黑树

二又树: binary tree,是每个结点不超过2的有序树(tree)。

简单的理解,就是一种类似于我们生活中树的结构,只不过每个结点上都最多只能有两个子结点。

二叉树是每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作“左子树"和“右子树"。

 

 

 

 

 

 

 

List集合介绍以及常用方法

 

 在Collection中,List集合是有序的,可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素。

java,uti1.List接口继承自 Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。

在Lst集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。

另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序致

List集合-介绍

  java.util.List接口继承自collection 接口,是单列集合的一个重要分支,习惯性地会将实现了List 接口的对象称为List集合。

  在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。

  另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。

List接口特点∶

  1.它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)。

  2.它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。

  3.集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。

java.util.List接口extends collection接口list接口的特点:

1.有序的集合,存储元素和取出元素的顺序是一致的(存储123取出123)

2.有索引,包含了一些带索引的方法

3.允许存储重复的元素

 

常用方法

List接口中带索引的方法(特有)

  - public void add(int index,E element):将指定的元素,添加到该集合中的指定位置上。- public E get(int index):返回集合中指定位置的元素。

  - public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素。

  - public E set(int index,E eLement):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

A:添加功能
boolean add(E e):向集合中添加一个元素
void add(int index, E element):在指定位置添加元素
boolean addAll(Collection<? extends E> c):向集合中添加一个集合的元素。

B:删除功能
void clear():删除集合中的所有元素
E remove(int index):根据指定索引删除元素,并把删除的元素返回
boolean remove(Object o):从集合中删除指定的元素
boolean removeAll(Collection<?> c):从集合中删除一个指定的集合元素。

C:修改功能
E set(int index, E element):把指定索引位置的元素修改为指定的值,返回修改前的值。

D:获取功能
E get(int index):获取指定位置的元素
Iterator iterator():就是用来获取集合中每一个元素。

E:判断功能
boolean isEmpty():判断集合是否为空。
boolean contains(Object o):判断集合中是否存在指定的元素。
boolean containsAll(Collection<?> c):判断集合中是否存在指定的一个集合中的元素。

F:长度功能
int size():获取集合中的元素个数

G:把集合转换成数组
Object[] toArray():把集合变成数组。

 

注意:

  操作索引的时候,一定要防止索引越界异常

  IndexOutOfBoundsException,索引越界异常,集合会报

  ArrayIndexOutOfBoundsException,数组索引越界异常,

  StringIndexOutOfBoundsException,字符串索引越界异常

 
public static void main(String[] args) {
        //创建一个List集合对象,多态
        List<String> list = new ArrayList<>();//使用add方法往集合中添加元素
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("a");//打印集合
        //System.out.println(list);// [a, b, c, d, a] 不是地址重写了tostring
        //public void add(int index,E element);//将指定的元素,添加到该集合中的指定位置上。//在c和d之间添加一个itheima
        list.add(3, "itheima");//[a, b, c, itheima,d,al
        System.out.println(list);

        //public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素。//移除元素
        String removeE = list.remove(2);
        System.out.println("被移除的元素:" + removeE);//被移除的元素:c
        System.out.println(list);// l[a, b, itheima,d, a]

        //public E set(int index,E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。//把最后一个a,替换为A
        String setE = list.set(4, "A");
        System.out.println("被替换的元素: " + setE);//被替换的元素:a
        System.out.println(list);//[a, b, itheima, d, A]
        // List集合遍历有3种方式
        //使用普通的for循环
        for (int i = 0; i < list.size(); i++) {
            // public E get(int index):返回集合中指定位置的元素。
            String s = list.get(i);
            System.out.println(s);
        }
        //使用迭代器
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
        //使用增强for循环
        for (String s : list) {
            System.out.println(s);
        }
//        越界异常
//        String s = list.get(5);
//        System.out.println(s);//IndexOutOfBoundsException: Index: 5, Size: 5
    }
 

 

 
public class Demo01LIst {
    public static void main(String[] args) {
        //创建一个list集合对象,多态
        ArrayList<String>  list=new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        //打印集合
        System.out.println(list);
        // --public void add(int index,E element):将指定的元素,添加到集合中指定的位置
        //在c和d之间添加一个元素
        list.add(2,"bbb");
        System.out.println(list);
        //-public E get(int index):返回集合中指定的元素
        String s = list.get(4);
        System.out.println(s);
        //   --public E remove(int index):移除列表中指定位置的元素,返回的是被移除的元素,
        String remove = list.remove(1);
        System.out.println("移除的是:"+remove);
//        --public E set(int index,E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素,
        String set = list.set(0, "aaa");
        System.out.println("修改的是:"+set);
 
        //list集合遍历有三种方式
        for (int i = 0; i < list.size(); i++) {
            String s1 = list.get(i);
            System.out.println(s1);
        }
        //使用迭代器遍历
        Iterator<String> it = list.iterator();
        while(it.hasNext()){
            String next = it.next();
            System.out.println(next);
        }
        //使用增强for循环遍历
        for (String l :list) {
            System.out.println(l);
 
        }
    }
}
 

标签:259,list,元素,List,int,add,260,集合
来源: https://www.cnblogs.com/agzq/p/16452220.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有