List和set

List接口
list允许重复、有序(输入输出顺序) 数组的数据结构(底层维护的是一个数组) 查询快、增删慢
List中常用的子类有两个:
ArrayList:底层维护的是一个数组数据结构,查询快,增删慢
LinkedList:底层维护的是一个链表数据结构,增删快、查询慢
如果查询多就用ArrayList,如果增删多就用LinkedList,如果不知道就选ArrayList,因为往往查询比增删需求多
下面用ArrayList写的一些东西

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

public class ListDome {
	public static void main(String[] args) {
		removeMethod();
	}
	/**
	 * 通过下标移除元素
	 */
	public static void removeMethod(){
		List list = new ArrayList();
		list.add("渊虹");
		list.add("巨阙");
		list.add("鲨齿");
		list.add(1,"水寒");
		System.out.println("list:"+list);
		//这个是插入进去,渊虹和巨阙中间
		
		//移除指定下标对应的元素
		list.remove(2);
		System.out.println("移除后的list"+list);
		//把巨阙移除了,水寒就顶替了
		
		List list2 = new ArrayList();
		list2.add("灵山");
		list2.add("震雷山");
		list2.add("巨阙");
		//移除两个集合相同的元素,只留第一个集合
		list.remove(list2);
		System.out.println("移除后的list"+list);
	}
	//这个是两个集合合并,相同的只留一个
	public static void addMethod(){
		List list = new ArrayList();
		list.add("渊虹");
		list.add("巨阙");
		list.add("鲨齿");
		list.add(1,"水寒");
		System.out.println("list:"+list);
		
		//移除指定下标对应的元素
		list.remove(2);
		System.out.println("移除后的list"+list);
		List list2 = new ArrayList();
		list2.add("灵山");
		list2.add("震雷山");
		list2.add("巨阙");
		//移除指定集合
		list.addAll(1,list2);
		System.out.println("添加后的list"+list);
	}
	/**
	 * list集合中指针查找方向
	 */
	public static void listIteratorMethod(){
		List list = new ArrayList();
		list.add("渊虹");
		list.add("巨阙");
		list.add("鲨齿");
		//获取迭代器
		ListIterator listIt = list.listIterator();
		System.out.println("下一个"+listIt.next());
		System.out.println("下一个"+listIt.next());
		System.out.println("下一个"+listIt.next());
        //后面是倒回来
		System.out.println("上一个"+listIt.previous());
		System.out.println("上一个"+listIt.previous());
		System.out.println("上一个"+listIt.previous());
	}
/**
 * 在迭代的过程中修改集合中的元素
 */
public static void listIteratorMethod2(){
	List list = new ArrayList();
	list.add("渊虹");
	list.add("巨阙");
	list.add("鲨齿");
	//获取迭代器
	ListIterator listIt = list.listIterator();
	int i=0;
	while(listIt.hasNext()){
		Object obj = listIt.next();
		if(i%2 != 0){
			listIt.add("圣"+i+"剑");
		}else{
			listIt.add("邪"+i+"剑");
		}
		i++;
	}
	System.out.println("修改后的集合:"+list);
}
/**
 * 获取指定下标对应的元素
 */
public static void getElementMethod(){
	List list = new ArrayList();
	list.add("渊虹");
	list.add("巨阙");
	list.add("鲨齿");
	System.out.println("排名第一的是"+list.get(0));
}
}

Set集合
不允许重复,且不保证输出顺序

import java.util.HashSet;
import java.util.Set;

public class SetDome {
	public static void main(String[] args) {
		method();
	}
	
	/**
	 * 不重复
	 */
	public static void method(){
		Set set = new HashSet();
		set.add("天问");
		set.add("渊虹");
		set.add("太阿");
		set.add("含光");
		set.add("天问");
		System.out.println(set);
		
	}
	
	
}

[渊虹, 含光, 天问, 太阿]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值