๐™น๐šŠ๐šŸ๐šŠ

[JAVA] ArrayList removeIf / iterator.remove() / ๋ฆฌ์ŠคํŠธ ์š”์†Œ ์‚ญ์ œํ•˜๊ธฐ

ํ•ด๋ฒ„๋‹ˆ 2023. 11. 2. 10:00
๋ฐ˜์‘ํ˜•

 

 

 

 

 

ArrayList.remove() 

์ธ๋ฑ์Šค๋กœ ์ง€์šฐ๊ธฐ

remove()๋Š” ()์•ˆ์— ์‚ญ์ œํ•  ์œ„์น˜(์ธ๋ฑ์Šค)๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  remove()๋Š” ์‚ญ์ œ๋œ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.

 

package work.practice.alone;

import java.util.ArrayList;

/**
 * arrayList remove()
 *
 */
public class ArrayListPractice {
	public static void main(String[] args) {

		ArrayList<String> list = new ArrayList<>();
		list.add("bazzi");
		list.add("dao");
		list.add("dizini");
		
		// ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ 
		System.out.println(list);
		// [bazzi, dao, dizini]
		
		// 2๋ฒˆ์งธ ์š”์†Œ ์‚ญ์ œํ•˜๊ธฐ 
		System.out.println(list.remove(2));
		// dizini
		
		// ์‚ญ์ œํ•œ ํ›„ ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ 
		System.out.println(list);
		// [bazzi, dao]

	}
}

 

 

 

 

 

 

 

 

 

 

 

 

๊ฐ’์œผ๋กœ ์ง€์šฐ๊ธฐ

remove() ์•ˆ์— ์ง€์šธ ๊ฐ’์„ ์ „๋‹ฌํ•ด์„œ ์ œ๊ฑฐํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

remove()์˜ ๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ๋Š” true ํ˜น์€ false์ด๋‹ค.

package work.practice.alone;

import java.util.ArrayList;

/**
 * arrayList remove()
 *
 */
public class ArrayListPractice {
	public static void main(String[] args) {

		ArrayList<String> list = new ArrayList<>();
		list.add("bazzi");
		list.add("dao");
		list.add("dizini");
		list.add("dao");
		
		// ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ 
		System.out.println(list);
		// [bazzi, dao, dizini, dao]
		
		// "dao" ์‚ญ์ œํ•˜๊ธฐ
		System.out.println(list.remove("dao"));
		// true
		
		// ์‚ญ์ œํ•œ ํ›„ ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ 
		System.out.println(list);
		// [bazzi, dizini, dao]

	}
}

์ฒซ ๋ฒˆ์งธ๋กœ ์ผ์น˜ํ•˜๋Š” ๋งŒ ์‚ญ์ œ๋˜๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋‹ค ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•ด๋‹นํ•˜๋Š” ๊ฐ’ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋งŒ ์ง€์›Œ์ฃผ๊ณ  ๋์ด๋‚œ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 

ArrayList.removeIf()

์—ฌ๋Ÿฌ ์š”์†Œ๋“ค์„ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

Java 8๋ถ€ํ„ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐฐ์—ด ๊ธธ์ด๊ฐ€ 4 ์ด์ƒ์ธ ์š”์†Œ๋ฅผ ์ „๋ถ€ ์‚ญ์ œํ•ด์ค€๋‹ค.

package work.practice.alone;

import java.util.ArrayList;

/**
 * arrayList removeIf()
 *
 */
public class ArrayListPractice {
	public static void main(String[] args) {

		ArrayList<String> list = new ArrayList<>();
		list.add("bazzi");
		list.add("dao");
		list.add("dizini");
		list.add("dao");
		
		// ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ 
		System.out.println(list);
		// [bazzi, dao, dizini, dao]
		
		// ๊ฐ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ 4 ์ด์ƒ์ธ ์š”์†Œ ์‚ญ์ œํ•˜๊ธฐ
		System.out.println(list.removeIf(item -> item.length()>4));
		// true
		
		// ์‚ญ์ œํ•œ ํ›„ ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ 
		System.out.println(list);
		// [dao, dao]

	}
}

 

 

 

 

 

 

 

 

 

 

 

 

๋ฐ˜๋ณต์ž(Iterator)

 

ArrayList ๊ฐ์ฒด๋ฅผ ๋ฐ˜๋ณต์ž๋กœ ๋ณ€ํ™˜ ํ›„ ํŠน์ • ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด ์ œ๊ฑฐํ•ด์ค€๋‹ค.

package work.practice.alone;

import java.util.ArrayList;
import java.util.Iterator;

/**
 * iterator๋กœ ์ œ๊ฑฐํ•˜๊ธฐ 
 *
 */
public class ArrayListPractice {
	public static void main(String[] args) {

		ArrayList<String> list = new ArrayList<>();
		list.add("bazzi");
		list.add("dao");
		list.add("dizini");
		list.add("dao");
		
		// ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ 
		System.out.println(list);
		// [bazzi, dao, dizini, dao]
		
		Iterator<String> iterator = list.iterator();
		
		while(iterator.hasNext()) {
			// ๋ฐฐ์—ด ๊ฐ’ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์˜ค๊ธฐ 
			String str = iterator.next();
			
			// ๋งŒ์•ฝ ๋ฌธ์ž์—ด์ด "dao"์ด๋ฉด ์ œ๊ฑฐํ•˜๊ธฐ
			if(str.equals("dao")) {
				iterator.remove();
			}
		}
		
		// ์‚ญ์ œํ•œ ํ›„ ๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ 
		System.out.println(list);
		// [bazzi, dizini]

	}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

์‘์šฉํ•˜๊ธฐ 

User๊ฐ์ฒด๋ฅผ ๋งŒ๋“  ํ›„ 20์‚ด ๋ฏธ๋งŒ์ธ ์š”์†Œ ์ œ๊ฑฐํ•˜๊ธฐ 

 

 

 

 

์ด ์ฝ”๋“œ 

RemovieTest.java

package collection;

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

import board.beans.User;

/**
 * List ์š”์†Œ ์ œ๊ฑฐํ•˜๊ธฐ
 *
 */
public class RemovingTest {
	public static void main(String[] agrs) {
		List<User> users = new ArrayList<User>(Arrays.asList(new User[] { new User("user1", 19), new User("user2", 19),
				new User("user3", 20), new User("user4", 18), new User("user5", 20) }));
		for (User user : users) {
			if (user.getAge() < 20) {

			}
		}

		users.removeIf(user -> user.getAge() < 20);

		/*
		 * Iterator<User> iterator = users.iterator(); while (iterator.hasNext()) { if
		 * (iterator.next().getAge() < 20) { iterator.remove(); } }
		 */

		for (User user : users) {
			System.out.println("Age :" + user.getAge() + ", Name :" + user.getName());
		}
	}
}

 

 

 

 

 

 

 

User.java

package board.beans;

import java.security.Timestamp;

/**
 * ์‚ฌ์šฉ์ž
 * 
 * @author 4ckdn
 *
 */
public class User {
	/** ์‚ฌ์šฉ์ž ๊ณ ์œ  ID */
	private long id;
	/** ์˜์–ด ์ด๋ฆ„ */
	private String name;
	/** ํ•œ๊ตญ์–ด ์ด๋ฆ„ */
	private String fullName;
	/** ๋น„๋ฐ€๋ฒˆํ˜ธ */
	private String password;
	/** ์ด๋ฉ”์ผ */
	private String email;
	/** ๋‚˜์ด */
	private int age;
	/** ๊ฐ€์ž… ๋‚ ์งœ */
	private Timestamp createDate;

	/**
	 * ์ƒ์„ฑ์ž
	 */
	public User() {
		// Do Nothing
	}

	/**
	 * ์ƒ์„ฑ์ž
	 * 
	 * @param name
	 * @param age
	 */
	public User(String name, int age) {
		this.name = name;
		this.age = age;
	}

	/**
	 * @param id
	 * @param name
	 * @param fullName
	 * @param password
	 * @param email
	 * @param age
	 * @param createDate
	 */
	public User(long id, String name, String fullName, String password, String email, int age, Timestamp createDate) {
		super();
		this.id = id;
		this.name = name;
		this.fullName = fullName;
		this.password = password;
		this.email = email;
		this.age = age;
		this.createDate = createDate;
	}

	/**
	 * @return the id
	 */
	public long getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the fullName
	 */
	public String getFullName() {
		return fullName;
	}

	/**
	 * @param fullName the fullName to set
	 */
	public void setFullName(String fullName) {
		this.fullName = fullName;
	}

	/**
	 * @return the password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * @param password the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * @return the email
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * @param email the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * @return the age
	 */
	public int getAge() {
		return age;
	}

	/**
	 * @param age the age to set
	 */
	public void setAge(int age) {
		this.age = age;
	}

	/**
	 * @return the createDate
	 */
	public Timestamp getCreateDate() {
		return createDate;
	}

	/**
	 * @param createDate the createDate to set
	 */
	public void setCreateDate(Timestamp createDate) {
		this.createDate = createDate;
	}

}

 

 

 

 

 

 

 

 

 

 

 

์ฐธ๊ณ 

https://developer-talk.tistory.com/486

 

[Java]ArrayList ํŠน์ • ๊ฐ’ ์‚ญ์ œ

์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ArrayList์—์„œ ํŠน์ • ๊ฐ’ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ArrayList.remove() - ์ธ๋ฑ์Šค remove() ๋ฉ”์„œ๋“œ์— ์ง€์ •๋œ ์œ„์น˜(์ธ๋ฑ์Šค)๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์œ„์น˜์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋’ค์— ์žˆ๋Š” ์š”์†Œ

developer-talk.tistory.com

 

๋ฐ˜์‘ํ˜•