我是靠谱客的博主 负责鱼,最近开发中收集的这篇文章主要介绍ArrayList类中的contains方法和remove方法及用LinkList模拟栈,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

仅供个人学习,如有侵权请联系删除。

ArrayList类中的contains方法和remove方法,底层用equals方法实现

ArrayList去除集合中字符串的重复值(字符串的内容相同)

public class Person {
	private String name;
	private int age;
	public Person() {
		super();
		
	}
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}
	/*@Override
	public boolean equals(Object obj) {
		Person p = (Person)obj;
		return this.name.equals(p.name) && this.age == p.age;
	}*/
	
}
public static void main(String[] args) {
		ArrayList list = new ArrayList();
		list.add("a");
		list.add("a");
		list.add("b");
		list.add("b");
		list.add("c");
		list.add("c");
		list.add("c");
		list.add("c");
		
		ArrayList newList = getSingle(list);
		System.out.println(newList);
	}

public static ArrayList getSingle(ArrayList list) {
		ArrayList newList = new ArrayList<>();					
		Iterator it = list.iterator();							
		
		while(it.hasNext()) {									
			Object obj = it.next();								
			if(!newList.contains(obj)) {						
				newList.add(obj);								//将该元素添加
			}
		}

 

ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)

注意事项:重写person类中的equals,否则用的是object类中的equal方法,比较的是地址值,不重写该方法,那么得到的结果则不正确。

public static void main(String[] args) {
		ArrayList list = new ArrayList();				//创建集合对象
		list.add(new Person("张三", 23));
		list.add(new Person("张三", 23));
		list.add(new Person("李四", 24));
		list.add(new Person("李四", 24));
		list.add(new Person("李四", 24));
		list.add(new Person("李四", 24));
		
		//ArrayList newList = getSingle(list);		//调用方法去除重复
		//System.out.println(newList);
		list.remove(new Person("张三", 23));        //去除张三 23这个元素
		System.out.println(list);
	}

public static ArrayList getSingle(ArrayList list) {
		ArrayList newList = new ArrayList<>();					//1,创建新集合
		Iterator it = list.iterator();							//2,根据传入的集合(老集合)获取迭代器
		
		while(it.hasNext()) {									//3,遍历老集合
			Object obj = it.next();								//记录住每一个元素
			if(!newList.contains(obj)) {						//如果新集合中不包含老集合中的元素
				newList.add(obj);								//将该元素添加
			}
		}
		
		return newList;
	}

请用LinkedList模拟栈数据结构的集合。

public class Stack {
	private LinkedList list = new LinkedList();
	
	/*
	 * 模拟进栈方法
	 */
	public void in(Object obj) {
		list.addLast(obj);
	}
	
	/*
	 * 模拟出栈
	 */
	public Object out() {
		return list.removeLast();
	}
	
	/*
	 * 模拟栈结构是否为空
	 */
	
	public boolean isEmpty() {
		return list.isEmpty();
	}
}

public static void main(String[] args) {
		//demo1();
		Stack s = new Stack();
		s.in("a");								//进栈
		s.in("b");
		s.in("c");
		s.in("d");
		
		while(!s.isEmpty()) {					//判断栈结构是否为空
			System.out.println(s.out());		//弹栈
		}
	}

	public static void demo1() {
		LinkedList list = new LinkedList();					//创建集合对象
		list.addLast("a");
		list.addLast("b");
		list.addLast("c");
		list.addLast("d");
		
		/*System.out.println(list.removeLast());
		System.out.println(list.removeLast());
		System.out.println(list.removeLast());
		System.out.println(list.removeLast());*/
		
		while(!list.isEmpty()) {
			System.out.println(list.removeLast());
		}
	}

 

最后

以上就是负责鱼为你收集整理的ArrayList类中的contains方法和remove方法及用LinkList模拟栈的全部内容,希望文章能够帮你解决ArrayList类中的contains方法和remove方法及用LinkList模拟栈所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部