[JAVA] ArrayList removeIf / iterator.remove() / ๋ฆฌ์คํธ ์์ ์ญ์ ํ๊ธฐ
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