• java基础:6.0 ArrayList


    在十二章学习爬虫的示例里用到了ArrayList,发现对这个很不熟悉。再捋一遍

    ArrayList  位于:java.util 包中

    ArrayList 类来存储不限定个数的对象,可以指定一个具体的类型来替换E

    ...
    {
        ...
        ArrayList<String> cityList = new ArrayList<>();   
        // <>中的元素必须是一种对象,不能是int,double..,可以是Integer.
        cityList.add("London");
        cityList.add("Paris");
        ...
        cityList.add("Miami");
        System.out.println(cityList.Size() + cityList.contains("Miami") +cityList.indexOf("London") + cityList.remove("Miami");
        System.out.println(cityList.toString());   //  == System.out.println(cityList);a
    }
    

     

    和数组的区别:

    //  存储整数的数组列表。
    ArrayList<Integer> list = new ArrayList<>();
    import java.util.ArrayList;
    import java.util.Scanner;
    public class Arraytest {
    	public static void main(String[] args) {
    		// using ArrayList
    		ArrayList<Integer> list = new ArrayList<>();
    		Scanner input = new Scanner(System.in);
    		System.out.println("enter integers(end with 0):");
    		int value;
    		do {
    			value = input.nextInt();
    			if(!list.contains(value) && value!=0) //对于每个值,如果不在列表中,则将其添加到列表中
    				list.add(value);
    		}while(value!=0);	
    		for(int i=0;i<list.size();i++)
    			System.out.print(list.get(i) + "  ");
    	}
    }
    

    上述程序,也可使用数组进行存储。然而,使用ArrayList 来实现该程序将更简单,有以下两个原因。

    • ArrayList 的大小是灵活的,所以无须提前给定它的大小。而当创建一个数组时,它的大小必须给定。
    • ArrayList 包含许多有用的方法。比如,可以使用contains 方法来测试某个元素是否在列表中。如果使用数组,则需要编写额外代码来实现该方法。

    数组列表中的元素也可以使用foreach 循环来进行遍历,语法如下:

    for (elementType element: arrayList){
    // Process the element
    }
    
    //example
    for (int number: list)
    System.out.print(number + "  ");

    从数组中创建一个数组列表的例子:

    String[]  array =  {"red","green","blue"};
    
    ArrayList<String> list = new  ArrayList<>(Arrays.asList(array));     //静态方法asList返回一个列表

    从一个数组列表来创建一个对象数组:

    String[] array1 = new  String[list.size()];
    
    list.toArray(array1);       //将list中的内容复制到array1
  • 相关阅读:
    【数论】【快速幂】【扩展欧几里得】【BSGS算法】bzoj2242 [SDOI2011]计算器
    【数论】【ex-BSGS】poj3243 Clever Y
    【数论】【扩展欧几里得】hdu3579 Hello Kiki
    【CCpp程序设计2017】推箱子游戏
    【Miller-Rabin算法】
    【数论】nefu119 组合素数
    【数论】nefu118 n!后面有多少个0
    【树形dp】vijos P1180 选课
    【树形dp】Codeforces Round #405 (rated, Div. 1, based on VK Cup 2017 Round 1) B. Bear and Tree Jumps
    【树形dp】VK Cup 2012 Round 1 D. Distance in Tree
  • 原文地址:https://www.cnblogs.com/l20902/p/10610935.html
Copyright © 2020-2023  润新知