【java】【集合】去除ArrayList中的元素、ArrayList巢狀ArrayList
一、去除ArrayList中重複字串元素方式
* 需求:ArrayList去除集合中字串的重複值(字串的內容相同)
* 思路:建立新集合方式
建立新集合將重複元素去掉
1、明確返回值型別,返回ArrayList
2、明確引數列表ArrayList
分析:
1、建立新集合
2、根據傳入的集合(老集合)獲取迭代器
3、遍歷老集合
4、通過新集合判斷是否包含老集合中的元素,如果包含就不新增,如果不包含就新增
import java.util.ArrayList;
import java.util.Iterator;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class Demo1_ArrayList {
/**
* * A:案例演示
* 需求:ArrayList去除集合中字串的重複值(字串的內容相同)
* 思路:建立新集合方式
*/
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<>(); //1,建立新集合
Iterator it = list.iterator(); //2,根據傳入的集合(老集合)獲取迭代器
while(it.hasNext()) { //3,遍歷老集合
Object obj = it.next(); //記錄住每一個元素
if(!newList.contains(obj)) { //如果新集合中不包含老集合中的元素
newList.add(obj); //將該元素新增
}
}
return newList;
}
}
二、去除ArrayList中重複自定義物件元素
需求:ArrayList去除集合中自定義物件元素的重複值(物件的成員變數值相同)
注意事項:重寫equals()方法的
建立新集合將重複元素去掉
1、明確返回值型別,返回ArrayList
2、明確引數列表ArrayList
分析:
1、建立新集合
2、根據傳入的集合(老集合)獲取迭代器
3、遍歷老集合
4、通過新集合判斷是否包含老集合中的元素,如果包含就不新增,如果不包含就新增
import java.util.ArrayList;
import java.util.Iterator;
import com.heima.bean.Person;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class Demo2_ArrayList {
/**
* * A:案例演示
* 需求:ArrayList去除集合中自定義物件元素的重複值(物件的成員變數值相同)
* B:注意事項
* 重寫equals()方法的
contains方法判斷是否包含,底層依賴的是equals方法
remove方法判斷是否刪除,底層依賴的是equals方法
*/
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));
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;
}
}
三、ArrayList巢狀ArrayList
import java.util.ArrayList;
import com.heima.bean.Person;
public class Demo5_ArrayListArrayList {
/**
* * A:案例演示
* 集合巢狀之ArrayList巢狀ArrayList
* 案例:
* 我們學科,學科又分為若個班級
* 整個學科一個大集合
* 若干個班級分為每一個小集合
*/
public static void main(String[] args) {
ArrayList<ArrayList<Person>> list = new ArrayList<>();
ArrayList<Person> first = new ArrayList<>(); //建立第一個班級
first.add(new Person("楊冪", 30));
first.add(new Person("李冰冰", 33));
first.add(new Person("范冰冰", 20));
ArrayList<Person> second = new ArrayList<>();
second.add(new Person("黃曉明", 31));
second.add(new Person("趙薇", 33));
second.add(new Person("陳坤", 32));
//將班級新增到學科集合中
list.add(first);
list.add(second);
//遍歷學科集合
for(ArrayList<Person> a : list) {
for(Person p : a) {
System.out.println(p);
}
}
}
}
相關文章
- JAVA集合-ArrayListJava
- Java集合——ArrayListJava
- Java 集合之ArrayListJava
- Java集合之ArrayListJava
- 【Java集合】2 ArrayListJava
- Java集合(一) —— ArrayListJava
- Java集合框架(一)-ArrayListJava框架
- Java集合 ArrayList原理及使用Java
- JAVA集合:ArrayList原始碼分析Java原始碼
- 【Java集合】ArrayList原始碼分析Java原始碼
- Java Collection介面 ArrayList集合(容器)Java
- Java之ArrayList去除重複元素(包括字串和自定義物件)Java字串物件
- Java集合之ArrayList原始碼解析Java原始碼
- Java List 常用集合 ArrayList、LinkedList、VectorJava
- Java 集合框架------ArrayList原始碼分析Java框架原始碼
- java集合原始碼分析(三):ArrayListJava原始碼
- 3、List集合——ArrayList、LinkedList
- 集合-ArrayList 原始碼解析原始碼
- ArrayList集合底層原理
- 集合框架2- ArrayList框架
- java集合學習(一):詳解ArrayListJava
- Java集合原始碼學習(2)ArrayListJava原始碼
- 帶你走進Java集合之ArrayListJava
- 再說Java集合,subList之於ArrayListJava
- JAVA ArrayList集合底層原始碼分析Java原始碼
- Java集合原始碼剖析——ArrayList原始碼剖析Java原始碼
- 死磕 java集合之ArrayList原始碼分析Java原始碼
- Java集合-ArrayList原始碼解析-JDK1.8Java原始碼JDK
- Java集合詳解(二):ArrayList原理解析Java
- 純手寫Arraylist集合框架框架
- [Java基礎]ArrayListJava
- Java ArrayList 與 LinkedListJava
- java中的List介面(ArrayList、Vector、LinkedList)Java
- Java中Vector和ArrayList的區別Java
- Java中的集合框架深度解析:從ArrayList到ConcurrentHashMap的效能考量Java框架HashMap
- Java 集合系列1、細思極恐之ArrayListJava
- java——ArrayList中contains()方法中的疑問JavaAI
- Day22 集合,ArrayList,泛型泛型