Java中List的用法

以前刚学 java 的时候对 List 列表没有认真学习,再加上后期没有怎么用就没有去研究,但是在后面写 java web 的时候遇到有关 List 的一点问题,那时候也是靠着百度解决问题,但是还是没有弄清楚 List 是怎样的。还好这次实习的时候认真的对 List 学习了一下,不敢说彻底明白了它的机制和用法,但至少遇到相关的需求可以使用 List 完成。

List 是一个集合,但是可以包含相同的元素,其实说简单点,在我看来 List 就是将不同类型的数据拼接在一起,其中以英文状态下的逗号(“,”)作为分隔符。

举个例子,通常我们通过下面这种方式来 new 一个 List

List<String> shops=new ArrayList<>();

短短一行代码里面有着不少东西。首先看到 <> 里面的内容,为 String,也就是说 List 里面的数据是字符串类型,这个数据类型可以自己选择,不管是字符串整型还是其他,甚至是HashMap类型也行。对于这个  <> 或许有人会有疑问,为什么不是 ()?在这里说一下,<> 是 java 泛型的表示形式,泛型是JDK1.5引入的新特性,泛型的其本质是实例化类型。需要注意的是类型参数只能代表引用型类型(像Intege,Double等),不能是原始类型(像int,double,char的等)

后面new的是 ArrayList ,是一个数组列表,ArrayList 可以看作是能够自动增长容量的数组。List有两个重要的实现类:ArrayList和LinkedList,在这里就不多加叙述。

现在开始讲讲 List 的一下相关操作。

在 List 中添加数据是使用 add() 方法,而获取 List 内容则是使用 get() 方法。

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

public class test {
	public static void main(String[] args){
		List<String> message=new ArrayList<>();
		message.add("namea");  //往List中添加数据
		message.add("age");
		for(int i=0;i<message.size();i++) {
            // 仅下面这一行就可以输出List中的数据
            System.out.println(message.get(i));
            
            //下面这段代码也可以用来输出,主要是要显示一下split()方法
			String[] data=message.get(i).split(",");   //需要用get()方法获得List的值,然后以逗号进行分割
			for(int j=0;j<data.length;j++) {
				System.out.println(data[j]);
			}
		}
	}
}

像上面的是最基本的应用,但也是用的最多的。在 List 里面其实我最没弄明白的是在 List 中添加数组类型的数据该如何添加和遍历这些数据,下面的代码仅供参考,如有错误请指正。

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

public class test {
	public static void main(String[] args){
		List<String[]> data=new ArrayList<String[]>();
		for(int i=0;i<2;i++) {
            String row[] = new String[2];
            row[0]="name"+i;
            row[1]="age"+i;
            data.add(row);   //往List中添加数组
        }
		for(int i=0;i<data.size();i++) {
			String[] a=data.get(i);  //获取List中的值
			for(int j=0;j<a.length;j++) {
				System.out.println(a[j]);
			}			
		}
	}
}

 除了上面用循环来遍历List,我们还可以使用迭代器来遍历列表

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


public class test {
	public static void main(String[] args){
		List<String> message=new ArrayList<>();
		message.add("namea");  //往List中添加数据
		message.add("age");
		Iterator iter = message.iterator();
		// 这是java 1.5以前的做法,现在还能用,但是比较麻烦
		while(iter.hasNext()){
			//如果存在,则调用next实现迭代
			String str = (String)iter.next();
			System.out.println(str);
		}
		//这是java 1.5以后的做法,在1.8中可以用lambda表达式来完成
		for (String str: message) {
		    System.out.println(str);
		}
	}
}

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值