精华内容
下载资源
问答
  • 2021-03-07 00:59:31

    用户定义的类阵列列表示例

    import java.util.*;

    public class UserDefinedClassInArrayList {

    public static void main(String[] args) {

    //Creating user defined class objects

    Student s1=new Student(1,"AAA",13);

    Student s2=new Student(2,"BBB",14);

    Student s3=new Student(3,"CCC",15);

    ArrayList al=new ArrayList();

    al.add(s1);

    al.add(s2);

    al.add(s3);

    Iterator itr=al.iterator();

    //traverse elements of ArrayList object

    while(itr.hasNext()){

    Student st=(Student)itr.next();

    System.out.println(st.rollno+" "+st.name+" "+st.age);

    }

    }

    }

    class Student{

    int rollno;

    String name;

    int age;

    Student(int rollno,String name,int age){

    this.rollno=rollno;

    this.name=name;

    this.age=age;

    }

    }

    节目输出:

    1 AAA 13

    2 BBB 14

    3 CCC 15

    更多相关内容
  • javaList对象集合的遍历方法 第一种: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } 这种方式在循环执行过程中会进行数据锁定, 性能稍差, 同时,如果你想在寻欢过程中去掉某个元素,只能...
  • Java如何创建空的集合对象

    千次阅读 2021-03-22 17:50:32
    java.util.Collections实用工具类具有创建空的三个不同的静态常量List,Set和Map。Collections.EMPTY_LISTCollections.EMPTY_SETCollections.EMPTY_MAP当您要创建类型安全的空集合时,还有一些方法。Collections....

    有时您需要从Java方法返回一个空集合。java.util.Collections实用工具类具有创建空的三个不同的静态常量List,Set和Map。Collections.EMPTY_LIST

    Collections.EMPTY_SET

    Collections.EMPTY_MAP

    当您要创建类型安全的空集合时,还有一些方法。Collections.emptyList()

    Collections.emptySet()

    Collections.emptyMap()

    下面是代码示例。package org.nhooo.example.util;

    import java.util.*;

    public class EmptyCollectionDemo {

    public static void main(String args[]) {

    List list = Collections.EMPTY_LIST;

    System.out.println("list.size()  = " + list.size());

    Set set = Collections.EMPTY_SET;

    System.out.println("set.size()   = " + set.size());

    Map map = Collections.EMPTY_MAP;

    System.out.println("map.size()   = " + map.size());

    // 对于类型安全的示例,请使用以下方法。

    List strings = Collections.emptyList();

    System.out.println("strings.size = " + strings.size());

    Set longs = Collections.emptySet();

    System.out.println("longs.size() = " + longs.size());

    Map dates = Collections.emptyMap();

    System.out.println("dates.size() = " + dates.size());

    }

    }

    输出为:list.size()  = 0

    set.size()   = 0

    map.size()   = 0

    strings.size = 0

    longs.size() = 0

    dates.size() = 0

    展开全文
  • List集合存储对象的遍历方式主要有以下三种(可根据自己实际需要选取遍历方式): (1)使用迭代器遍历,集合特有的遍历方式 (2)使用普通for循环遍历,带有索引 (3)使用增强for循环,最方便的方式 程序代码如下...

    List集合存储对象的遍历方式主要有以下三种(可根据自己实际需要选取遍历方式):
    (1)使用迭代器遍历,集合特有的遍历方式
    (2)使用普通for循环遍历,带有索引
    (3)使用增强for循环,最方便的方式

    程序代码如下:
    1、先定义一个学生类Student

    public class Student {
        private String name;
        private String dept;
        private String age;
    
        public Student() {
        }
    
        public Student(String name, String dept, String age) {
            this.name = name;
            this.dept = dept;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getDept() {
            return dept;
        }
    
        public void setDept(String dept) {
            this.dept = dept;
        }
    
        public String getAge() {
            return age;
        }
    
        public void setAge(String age) {
            this.age = age;
        }
    }
    

    2、创建集合对象,开始遍历

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class ListDemo {
        public static void main(String[] args) {
            List<Student> list=new ArrayList<Student>();  //创建集合对象
    
            Student s1 = new Student("Cheng", "IMIS", "22");
            Student s2 = new Student("小学生", "CS", "20");
            Student s3 = new Student("King", "IMIS", "23");
    		
    		//将Student对象添加到集合中
            list.add(s1);
            list.add(s2);
            list.add(s3);
    
            //使用迭代器遍历,集合特有的遍历方式
            Iterator<Student> it = list.iterator();
            while (it.hasNext()){
                Student s=it.next();
                System.out.println(s.getName()+","+s.getDept()+","+s.getAge());
            }
    
            System.out.println("--------");
    
            //使用普通for循环遍历,带有索引
            for (int i=0;i<list.size();i++){
                Student s=list.get(i);
                System.out.println(s.getName()+","+s.getDept()+","+s.getAge());
            }
    
            System.out.println("--------");
    
            //使用增强for循环,最方便的方式
            for (Student s:list){
                System.out.println(s.getName()+","+s.getDept()+","+s.getAge());
            }
        }
    }
    

    输出结果如下:

    Cheng,IMIS,22
    小学生,CS,20
    King,IMIS,23
    --------
    Cheng,IMIS,22
    小学生,CS,20
    King,IMIS,23
    --------
    Cheng,IMIS,22
    小学生,CS,20
    King,IMIS,23
    
    展开全文
  • String strs = {"a", "b", "c"}但是,如果我们创建List集合,或者Map集合时,也想快速地为它赋初始值,应当如何做呢?解决方式方式1:调用函数请看如下代码:ArrayList list = new ArrayList<>(Arrays.as...

    问题简介

    在Java当中,若希望在创建数组的同时给数组赋值很简单,可以想下面这样:

    int[] num = {1,2,3};

    String strs = {"a", "b", "c"}

    但是,如果我们创建List集合,或者Map集合时,也想快速地为它赋初始值,应当如何做呢?

    解决方式

    方式1:调用函数

    请看如下代码:

    ArrayList list = new ArrayList<>(Arrays.asList("aa", "bb", "cc"));

      Arrays.asList(T... a) 方法的参数是一个可变长参数,也就是说他能够传入一个数组,也能够传入多个参数,而它的作用就是将传入的数组或多个数据封装成List集合返回,而上面的代码就是接收返回的List集合,并将其作为参数传入ArrayList的构造方法,创建一个新的ArrayList对象。

    说到这里有人可能要问了,为什么不能直接将asList方法的返回值赋给list参数,而要将它传入构造器创建新的对象呢?这不是脱裤子放屁——多此一举吗。当然不是,请看下面的代码:

    // 代码1

    List list1 = Arrays.asList("aa", "bb", "cc");

    list1.add("dd"); // UnsupportedOperationException

    // 代码2

    String[] str = {"a","b","c"};

    List list = Arrays.asList(str);

    str[0] = "e"; // list中的0号位置也一同改变

      上面有两段代码,看似没有问题,但是运行结果却和大家想象的有些不同。首先代码1,使用asList方法返回的创建的List对象,不允许进行修改操作,否则将会抛出一个UnsupportedOperationException;再来看代码2,我们将一个数组作为asList的参数,得到一个List对象,但是此时我们改变这个数组中元素的值,list对象的值也会发生改变,因为这个List对象底层引用的就是这个数组,并且和代码1一样,这个list也不能修改。

    但是,若我们将返回的List对象作为参数传入ArrayList的构造器中,这个问题就不会发生,因为ArrayList的构造器将会把传入的list中所有的元素复制一份,因此不会影响到原数组,且可以随意改变。

    方式2:匿名内部类

    这是一个非常机智的方式,就是看到了下面这行代码,我才忍不住写了这篇博客:

    List list = new ArrayList(){ {add("a"); add("b"); add("c");} };

    乍一看是不是有点懵逼,我们将这段代码展开来看,就会清晰很多:

    List list = new ArrayList() {

    {

    add("a");

    add("b");

    add("c");

    }

    };

    这下应该比之前容易理解了。这段代码就是创建了一个匿名内部类对象,且这个类继承自ArrayList,在这个匿名内部类中添加了一个非静态代码块,并在代码块中调用了三次add方法,为这个List对象赋值。

    我们知道,若我们想创建一个对象,可以直接new 构造方法,但是我们若想写一个匿名内部类,这个匿名内部类继承自某个类,只需在构造方法后面加上一对大括号。同时,非静态代码块会在构造方法执行前被执行,所以我们将赋值语句放在了代码块中,于是就有了上面这段代码。若还是看不明白,没关系,看下面这段代码十有八九就明白了,我们将上面的代码换另一种方式写出来:

    public class Test {

    public static void main(String[] args) {

    List list = new MyList();

    }

    }

    // 创建一个类继承自ArrayList

    class MyList extends ArrayList{

    // 在类的非静态代码块中编写赋值语句

    {

    add("a");

    add("b");

    add("c");

    }

    }

    以上代码就是最开始那句代码的完整版,创建一个MyList类(名字随意),继承自ArrayList,并编写一个非静态代码块调用三次add方法,这个代码块将会在构造方法执行前被执行,因此创建一个MyList对象后,它肯定已经有三条数据了。若到此时还没有听懂,可能就需要去了解一下匿名内部类,以及代码块的执行机制了。

    这种为集合赋值的好处就是,它可以用在任意一种集合类型上(Map,Set......),如下代码:

    // 使用此方法为map赋值

    HashMap map = new HashMap() {

    {

    put("a", 1);

    put("b", 2);

    put("c", 3);

    }

    };

    当然,这种方法也有一些弊端,就拿ArrayList来说,那就是这种方法得到的对象,它的类型并不是ArrayList,我们调用对象.getClass().getName()方法获取对象的类名,得到的是代码所在类的类名+$1(这里和匿名内部类的机制有关,就不详细叙述了)。所以在代码中,如果对对象的类型有着严格的要求,就需要谨慎考虑是否应该使用这种方式。

    博客总结

    在平常编写代码时,还是第一种方式使用的比较多,因为简单而且不容易产生问题;而第二种方,我个人建议还是少用(虽然我就是为第二种方式写的博客.....),因为在类型要求严格的程序中,可能会产生问题。当然,第二种方式真的非常机智(感叹),而且可以用在各种类型的集合上,学习一下还是很有帮助的。

    参考文献

    《Java核心技术 卷Ⅰ》

    展开全文
  • JavaList集合常用创建方式

    千次阅读 2019-07-24 15:05:02
    1、常规方式 List<String> languages = new ArrayList...languages.add("Java"); languages.add("PHP"); languages.add("Python"); System.out.println(languages); 2、Arrays 工具类 List<String>...
  • 首先新建一个实体类Person@Datapublic class Person {/** 编码 */private String code;/** 名字 */private String name;public Person(String code, String name) {this....}}实例化三个对象放入list集合中public s...
  • java创建集合的常用格式

    千次阅读 2021-02-12 10:52:58
    创建集合的常用格式:导包:import java.util.ArrayList;创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:ArrayList变量名= new ArrayList();集合中存储的元素,只能为<&...
  • 最近在写一些关于java基础的文章,但是...总结java创建文件夹的4种方法及其优缺点 总结java中删除文件或文件夹的7种方法 总结java中文件拷贝剪切的5种方式 比如之前我已经写了上面的这些内容,如果对java基础知识总结
  • 首先新建一个实体类person@datapublic class person {/** 编码 */private string code;/** 名字 */private string name;public person(string code, string name) {this....}}实例化三个对象放入list集合中public s...
  • 一、最常见的初始化方式先创建,再添加元素List从源码可以看出:List 的默认长度为10递增后的长度为先前长度的 1.5 倍最大长度是 Integer.MAX_VALUE,即 2,147,483,647 或 0x7f ff ff ffListlist = new ArrayList<...
  • Java集合类(List、map、list集合)

    千次阅读 2021-02-26 18:49:11
    1.1集合类的概述Java.util包中提供了一些集合类,这些集合类...常用的集合有List集合、Set集合和Map集合,其中List和Set继承了Collection接口,各接口还提供了不同的实现类。上述集合类的继承关系如图14.1所示:1.1C...
  • 本工程用于研究Java对象集合与Json之间的互相转换 本工程编码方式:UTF-8 注意:由于User类中为方便生成User实例创建了有参的User构造方法,所以也要创建无参的构造方法,否则将出现如本工程图01.jpg所示的异常...
  • Java LIst集合全解

    千次阅读 2021-05-08 08:40:23
    集合的优势: (1)数组存储的不足与缺陷: 长度开始必须执行,而且一旦指定,无法修改 ...Collection接口有两个重要的子接口List、Set,他们的实现子类都是单列集合 Map接口的实现子类是双列集合,存放K-
  • (2)创建List集合对象 (3)创建学上对象 (4)把学生添加到集合 (5)遍历集合(迭代器方式、for循环方式) 完整代码: package com.xuexi; import java.util.ArrayList; import java.util.Iterator; import ...
  • java 两个List集合各种情况对比处理

    千次阅读 2021-03-04 04:51:08
    Lambda作为函数式编程中的基础部分,在其他编程语言(例如:Scala)中早就广为使用,但在JAVA领域中发展较慢,直到java8,才开始支持Lambda。抛开数学定义不看,直接来认识Lambda。Lambda表达式本质上是匿名方法,其...
  • java集合类的创建方式

    千次阅读 2020-12-17 14:31:06
    java集合类的创建方式 常常因为不会创建集合类的语法而浪费时间。...常见的集合类有List集合、Set集合、Map集合。   下面举一个实例,看看如何创建并添加修改集合元素。 1 import java.util.Iterator; 2 impor
  • 假设有个Employee的类 public class Employee { private String name; private int age; private double salary;...有个employees的List集合 List<Employee> employees = Arrays.asList( ...
  • 如果 List 集合对象由于调用 add 方法而发生更改,则返回 true;否则返回 false。add(E e)参数说明:e:要添加到列表中的元素。示例本示例使用 List 接口的实现类 ArrayList 初始化一个列表对象,然后调用 add 方法...
  • Java如何对List集合的操作方法(一)

    千次阅读 2021-02-26 19:01:59
    目录:list中添加,获取,删除元素;list中是否包含某个元素;list中根据索引将元素数值改变(替换)...返回Iterator集合对象;将集合转换为字符串;将集合转换为数组;集合类型转换;去重复;1.list中添加,获取,删...
  • java8 List,Map,对象集合常用操作

    千次阅读 2018-11-06 15:25:08
    //list 集合排序 List < String > names2 = new ArrayList < String > ( ) ; names2 . add ( "Google " ) ; names2 . add ( "Runoob " ) ; names2 . add ( "Taobao " ) ; names2 . add ( "Baidu " ) ; ...
  • Java创建List的4种方法

    千次阅读 2021-04-25 19:04:05
    1、通过构造方法,例如:List<String>...但是这种方法构造出的List是固定长度的,如果调用add方法增加新的元素,会报异常:java.lang.UnsupportedOperationException,其实也可以理解,这个List是...
  • java创建List时候 初始化赋值

    万次阅读 多人点赞 2019-08-04 17:19:07
    在这之前 可能有的读者, 只知道数组初始化 时候的赋值。...当创建list时候,也许 你还会写过以下代码 正确的写法 List&lt;String&gt; list = new ArrayList&lt;&gt;() {//这个大括号 就...
  • JavaList集合,String数组排序

    千次阅读 2021-02-26 18:50:01
    在平时开发的过程中,经常会遇到需要对数组、集合中元素按规则进行排序,本文记录在开发过程中可能遇到的情况以及相关的完整代码示例。知识点Comparable接口实现了该接口的对象,必须重写compareTo方法,对象实现了...
  • JavaList集合和枚举转换为数组解决方案最近在做项目的时候,经常遇到将将一个List集合中的对象的某个属性字段取出,然后组装成该字段属性对应类型的数组,也遇到了将一个枚举中每个元素对应的值取出,组装成该枚举...
  • List集合存储学生对象用三种方式遍历 ...②创建List集合对象 ③创建学生对象 ④把学生添加到集合 public class ListTest { public static void main(String[] args) { List<Student> arr = new...
  • Java8 List集合过滤出符合条件的List元素集合 新增实体类 public class Student { private Integer stuNum; // 学号 private String name; // 姓名 private Integer age; // 年龄 省略set get 或加 @Data...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 338,645
精华内容 135,458
关键字:

java创建list集合对象

java 订阅
友情链接: WT_ALG_v1.rar