java集合中list的用法代码示例

List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类,List中的元素是有序排列的而且可重复,所以被称为是序列。

List可以精确的控制每个元素的插入位置,或删除某个位置元素,它的实现类ArrayList底层是由数组实现的。

List中有增删改查的方法,我们可以通过例子演示:

我们通过对学生选课,来演示List中对课程增删改查的方法

/**
 * 课程类
 * @author lenovo
 *
 */
public class KeCheng {
  public String id;
  public String name;
  public KeCheng(String id,String name){
    this.id = id;
    this.name = name;
  }
}

创建一个学生类

import java.util.HashSet;
import java.util.Set;
/**
 * 学生类
 * @author lenovo
 *
 */
public class Student {
  public String id;
  public String name;
  public Set kecheng;
  public Student(String id,String name){
    this.id = id;
    this.name = name;
    this.kecheng = new HashSet();
  }
}

创建一个备选课程的类

/**
 * 备选课程类
 * @author lenovo
 *
 */
public class ListTest {
  //用于存放备选课程的List
  public List beixuan;
  public ListTest(){
    this.beixuan = new ArrayList();
  }
}

可以使用List中add方法添加课程

/*
   * 用来往beixuan里添加备选课程的方法
   */
  public void kcAdd(){
    //创建一个课程的对象,调用add方法,添加到备选课程的List中
    KeCheng kc = new KeCheng("1","数据结构");
    beixuan.add(kc);
    KeCheng kc2 = new KeCheng("2","C语言");
    beixuan.add(0, kc2);
    KeCheng[] kcArr = {new KeCheng("3","大学语文"),new KeCheng("4","线性代数")};
    beixuan.addAll(Arrays.asList(kcArr));
    KeCheng[] kcArr2 = {new KeCheng("5","艺术设计"),new KeCheng("6","计算机基础")};
    beixuan.addAll(2, Arrays.asList(kcArr2));
  }

使用get方法取出指定位置上的内容,并用for循环遍历出课程的内容

/*
   * 使用for循环遍历课程的方法
   */
  public void getKC(){
    int size = beixuan.size();
    System.out.println("使用for遍历课程:");
    for (int i = 0; i < size; i++) {
      KeCheng kc = (KeCheng) beixuan.get(i);
      System.out.println("课程:"+kc.id+":"+kc.name+";");
    }
  }

遍历List的内容,除了使用for循环外,还可以使用迭代器、foreach等方法

/*
   * 使用Iterator迭代器遍历课程
   */
  public void testIterator(){
    Iterator it = beixuan.iterator();
    System.out.println("使用Iterator遍历课程:");
    while(it.hasNext()){
      KeCheng kc = (KeCheng) it.next();
      System.out.println("课程:"+kc.id+":"+kc.name+";");
    }
  }
  /*
   * 使用for each遍历课程
   */
  public void testForeach(){
    System.out.println("使用for each遍历课程:");
    for(Object obj : beixuan){
      KeCheng kc = (KeCheng)obj;
      System.out.println("课程:"+kc.id+":"+kc.name+";");
    }
  }

修改List中的元素,可以使用set方法

 /*
   * 使用set方法添加课程
   */
   public void testModify(){
     beixuan.set(0, new KeCheng("7","毛概"));
   }

删除List中的元素有两种方法,一是使用remove方法

/*
   * 使用remove方法删除课程
   */
  public void testRemove(){
    KeCheng kc = (KeCheng) beixuan.get(0);
    System.out.println("我是课程:"+kc.id+":"+kc.name+";即将被删除");
    boolean b = beixuan.remove(kc);
    if(b){
      System.out.println("成功删除课程");
      testForeach();
    }
  }

还可以使用removeAll方法删除一个课程类型的数组

/*
   * 使用removeAll方法删除课程
   */
  public void testRemoveAll(){
    System.out.println("即将删除4和5位置上的课程");
    KeCheng[] kc = {(KeCheng) beixuan.get(4),(KeCheng) beixuan.get(5)};
    beixuan.removeAll(Arrays.asList(kc));
    System.out.println("课程删除成功");
    testForeach();
  }

总结

以上就是本文关于java集合中list的用法代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友继续参阅本站:java集合中的list详解、Java编程接口调用的作用及代码分享、java并发学习之BlockingQueue实现生产者消费者详解等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

(0)

相关推荐

  • java list用法示例详解

    |--List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引,  |-- ArrayList:底层的数据结构使用的是数组结构(数组长度是可变的百分之五十延长)(特点是查询很快,但增删较慢)线程不同步  |-- LinkedList:底层的数据结构是链表结构(特点是查询较慢,增删较快)  |-- Vector:底层是数组数据结构 线程同步(数组长度是可变的百分之百延长)(无论查询还是增删都很慢,被ArrayList替代了

  • java的arraylist排序示例(arraylist用法)

    写了一个java数组排序示例,这里分享给大家共同学习 复制代码 代码如下: package com.yonyou.test;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test { public static void main(String[] args) {  Student zlj = new St

  • java集合中list的用法代码示例

    List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类,List中的元素是有序排列的而且可重复,所以被称为是序列. List可以精确的控制每个元素的插入位置,或删除某个位置元素,它的实现类ArrayList底层是由数组实现的. List中有增删改查的方法,我们可以通过例子演示: 我们通过对学生选课,来演示List中对课程增删改查的方法 /** * 课程类 * @author lenovo * */ public class KeCheng { publ

  • Java监听器的作用及用法代码示例

    监听器在JavaWeb开发中用得比较多 Java Web开发中的监听器(listener)就是application.session.request三个对象创建.销毁或者往其中添加修改删除属性时自动执行代码的功能组件,如下所示: ①ServletContextListener:对Servlet上下文的创建和销毁进行监听. ②ServletContextAttributeListener:监听Servlet上下文属性的添加.删除和替换. ③HttpSessionListener:对Session的

  • java单链表逆序用法代码示例

    本篇博客,比较简单.对单链表逆序不理解的看看就可以了. 逆序思想 现假设有一链表,有待逆序操作.我们首先想到的就是将那个指针关系逆序了就行了呗. 事实上,就是这样.博主就是以这个为目标来完成的单链表逆序操作. Node pre = null; Node post = null; while(head!=null){ post = head.next; head.next = pre; pre = head; head = post; } 这便是逆序的核心了.下面我们就来一步步的讲解. 首次逆序:

  • 删除JAVA集合中元素的实现代码

    经常我们要删除集合中的某些元素.有些可能会这么写. 复制代码 代码如下: public void operate(List list){ for (Iterator it = list.iterator(); it.hasNext();) { String str = (String)it.next(); if (str.equals("chengang")){ list.remove(str); } } } 这种写法一运行就会报如下异常: Exception in thread &q

  • java算法实现红黑树完整代码示例

    红黑树 定义 红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组. 红黑树的另一种定义是含有红黑链接并满足下列条件的二叉查找树: 红链接均为左链接:没有任何一个结点同时和两条红链接相连:该树是完美黑色平衡的,即任意空链接到根结点的路径上的黑链接数量相同. 满足这样定义的红黑树和相应的2-3树是一一对应的. 旋转 旋转又分为左旋和右旋.通常左旋操作用于将一个向右倾斜的红色链接旋转为向左链接.对比操作前后,可以看出,该操作

  • Java中Switch用法代码示例

    一.java当中的switch与C#相比有以下区别 注:在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样),  在java1.7后支持了对string的判断 还有一点要注意的是:在java中如果switch的case语句中少写了break;这个关键字,在编译的时候并没有报错.但是在执行的时候会一直执行所有case条件下的语句并不是去判断,所以会一直执行直到遇到break关键字跳出或者一直执行到defaut语句. 还有就是如果

  • Java编程GUI中的事件绑定代码示例

    程序绑定的概念: 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来.对java来说,绑定分为静态绑定和动态绑定:或者叫做前期绑定和后期绑定 静态绑定: 在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现.例如:C. 针对java简单的可以理解为程序编译期的绑定:这里特别说明一点,java当中的方法只有final,static,private和构造方法是前期绑定 动态绑定 后期绑定:在运行时根据具体对象的类型进行绑定. 若一种语言实现了后期绑定,同时必须提供一些机制,可在运行期间

  • Java 集合中关于Iterator和ListIterator的用法说明

    1.Iterator Iterator的定义如下: public interface Iterator<E> {} Iterator是一个接口,它是集合的迭代器.集合可以通过Iterator去遍历集合中的元素.Iterator提供的API接口如下: forEachRemaining(Consumer<? super E> action):为每个剩余元素执行给定的操作,直到所有的元素都已经被处理或行动将抛出一个异常 hasNext():如果迭代器中还有元素,则返回true. next

  • java定时器timer的使用方法代码示例

    1.首先肯定是容器一启动就要启动定时器,所以我们可以选择把定时器写在一个监听器里,容器一启动所以监听器也就跟着启动,然后定时器就可以工作了. 第一步,把自己写的监听器加到web.xml中: 第二步,写一个监听器,实现ServletContextListener接口: 第三步,写一个定时器,继承TimerTask,在复写的run()方法里写具体的业务逻辑. 第四步,在自己的监听器里复写的 public void contextInitialized(ServletContextEvent arg0

  • java集合中的list详解

    1.List接口 该接口定义的元素是有序的且可重复的.相当于数学里面的数列,有序可重复 booleanaddAll(intindex,Collection<?extendsE>c);将指定集合中所有元素,插入至本集合第index个元素之后defaultvoidreplaceAll(UnaryOperatoroperator);替换集合中每一个元素值defaultvoidsort(Comparator<?superE>c);给集合中的元素进行排序Eget(intindex);获取集合

随机推荐