Java中List的详细用法

LinkListed用法:链接: link.
定义:List name = new ArrayList<>()

具体方法如下:

1.list中添加,获取,删除元素;

添加方法是:.add(e);  获取方法是:.get(index);  删除方法是:.remove(index); 按照索引删除;  .remove(Object o); 按照元素内容删除;

List<String> person = new ArrayList<>();
		person.add("jackie");
		person.add("peter");
		person.add("annie");
		person.add("martin");
		person.add("marry");
		
		person.remove(3);
		person.remove("marry");
		
		String per="";
		per = person.get(1);
		System.out.println("per:"+per);
		System.out.print("result:");
		for(String pers : person)
		{
			System.out.print("\t"+pers);
		}

结果为:

per:peter
result:	jackie	peter	annie

2.list中是否包含某个元素;

方法:.contains(Object o); 返回true或者false

List<String> fruits = new ArrayList<>();
		fruits.add("苹果");
		fruits.add("香蕉");
		fruits.add("桃子");
		System.out.println("fruits中包含水果:");
		for(int i=0;i<fruits.size();i++)
		{
			System.out.println(fruits.get(i));
		}
		
		String appleString = "苹果";
		System.out.printf("fruits中%s苹果\n",fruits.contains(appleString)?"包含":"不包含");
		
		if(fruits.contains(appleString))
			System.out.println("我喜欢吃苹果");
		else
			System.out.println("我不喜欢吃苹果");

结果为:

fruits中包含水果:
苹果
香蕉
桃子
fruits中包含苹果
我喜欢吃苹果

3.list中根据索引将元素数值改变(替换);

注意 .set(index, element); 和 .add(index, element); 的不同;set是将替换该索引位置的值而add是在该索引位置插入一个值;

String a = "白龙马", b = "沙和尚" , c ="八戒" , d="唐僧" , e = "悟空";
 		List<String> people = new ArrayList<>();
		people.add(a);
		people.add(b);
		people.add(c);
		people.set(0, d);
		people.add(1,e);
		System.out.print("result:");
		for(String s : people)
			System.out.print(s+"\t");

结果为:

result:唐僧	悟空	沙和尚	八戒

4.list中查看(判断)元素的索引;

注意:.indexOf(); 和 lastIndexOf()的不同;前者是第一个该值得索引,后者是最后一个该值得索引;

List<String> names = new ArrayList<>();
		names.add("刘备");
		names.add("关羽");
		names.add("张飞");
		names.add("刘备");
		names.add("张飞");
		System.out.println(names.indexOf("刘备"));
		System.out.println(names.lastIndexOf("刘备"));
		System.out.println(names.indexOf("张飞"));
		System.out.println(names.lastIndexOf("张飞"));

结果为:

0
3
2
4

5.利用list中索引位置重新生成一个新的list(截取集合);

方法: .subList(fromIndex, toIndex);  .size() ; 该方法得到list中的元素数的和

List<String> phone = new ArrayList<>();
		phone.add("三星");
		phone.add("苹果");
		phone.add("锤子");
		phone.add("华为");
		phone.add("小米");
		System.out.print("原集合为:");
		for(String pho:phone)
			System.out.print(pho+"\t");
		phone = phone.subList(1, 4);
		System.out.print("\n子集合为:");
		for(int i=0;i<phone.size();i++)
			System.out.print(phone.get(i)+"\t");

结果为:

原集合为:三星	苹果	锤子	华为	小米	
子集合为:苹果	锤子	华为	

6.对比两个list中的所有元素;

两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象

List<String> fruits=new ArrayList<>();
        fruits.add("苹果");
        fruits.add("香蕉");
        fruits.add("桃子");
        
        List<String> fruit=new ArrayList<>();
        fruit.add("苹果");
        fruit.add("香蕉");
        fruit.add("桃子");
        
        List<String> person=new ArrayList<>();
        person.add("jackie");   //索引为0  //.add(e)
        person.add("peter");    //索引为1
        person.add("annie");    //索引为2
        person.add("martin");   //索引为3
        person.add("marry");    //索引为4
        
        if(fruit.equals(fruits))
        	System.out.println("两个list中的所有元素相同");
        else
        	System.out.println("两个list中的所有元素不一样");
        
        if(person.equals(fruits))
        	System.out.println("两个list中的所有元素相同");
        else
        	System.out.println("两个list中的所有元素不一样");
        if(person.hashCode()==fruits.hashCode())
        	System.out.println("我们相同");
        else
        	System.out.println("我们不一样");

结果为:

两个list中的所有元素相同
两个list中的所有元素不一样
我们不一样

7.判断list是否为空;

空则返回true,非空则返回false

if (person.isEmpty()) {
    System.out.println("空的");
}else {
    System.out.println("不是空的");
}

结果为:

不是空的

8.返回Iterator集合对象;

System.out.println("返回Iterator集合对象:"+person.iterator());

结果为:

返回Iterator集合对象:java.util.ArrayList$Itr@52cc8049

9.将集合转换为字符串;

String liString ="";
       liString = person.toString();
       System.out.println("将集合转换为字符串:"+liString);

结果为:

将集合转换为字符串:[jackie, peter, annie, martin, marry]

10.将集合转换为数组;

System.out.println("将集合转换为数组:"+person.toArray());

结果为:

将集合转换为数组:[Ljava.lang.Object;@52cc8049
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐