javalist過濾
Ⅰ Java中list如何利用遍歷進行刪除操作
方法有很多,比如可以在for和foreach 等循環遍歷,然後刪除,
下面在介紹兩種方案. 第一種.迭代循環, 然後刪除. 第二種java8開始的流操作
importjava.util.*;
importjava.util.stream.Collectors;
publicclassMyListDemo{
publicstaticvoidmain(String[]args){
test1();//傳統方法
test2();//java8開始的新方法
}
//傳統的方法
publicstaticvoidtest1(){
//創建一個list類
List<String>list=newArrayList<>(Arrays.asList("ab","cd","11","ef"));
//迭代遍歷查找
Iterator<String>it=list.iterator();
while(it.hasNext()){
Stringx=it.next();
if(x.equals("11")){
it.remove();//用迭代器刪除
}
}
System.out.println(list);
}
//下面是JAVA8的處理方式
privatestaticvoidtest2(){
List<String>list2=newArrayList<>(Arrays.asList("ab","cd","11","ef"));
List<String>list3=list2
.stream()//得到流,准備進行流處理
.filter(x->!x.equals("11"))//過濾掉等於"11"的元素
.collect(Collectors.toList());//收集起來
System.out.println(list3);
}
}
Ⅱ java中如何將list集合清空
java中將集合清空可以用方法。
下面演示用法,代碼如下
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list);
list.clear();
System.out.println(list);
}
(2)javalist過濾擴展閱讀,集合的方法
boolean add(Object o)添加對象到集合
boolean remove(Object o)刪除指定的對象
int size()返回當前集合中元素的數量
boolean contains(Object o)查找集合中是否有指定的對象
boolean isEmpty()判斷集合是否為空
Iterator iterator()返回一個迭代器
boolean containsAll(Collection c)查找集合中是否有集合c中的元素
boolean addAll(Collection c)將集合c中所有的元素添加給該集合
void clear()刪除集合中所有元素
void removeAll(Collection c)從集合中刪除c集合中也有的元素
void retainAll(Collection c)從集合中刪除集合c中不包含的元素
Ⅲ java List 遍歷和刪除 急
List可以用序號來遍歷,但通常推薦使用iterator來遍歷
Iterator itr = list.iterator();
while (itr.hasNext()) {
Object nextObj = itr.next();
}
如果要全部刪除,用clear()方法是最簡單的。
另外,Iterator也帶有()方法,可以在遍歷的時候,根據一定條件來進行刪除。
示例:
import java.util.*;
public class Test {
public static void print(List<Integer> list) {
Iterator<Integer> itr = list.iterator();
while (itr.hasNext()) {
System.out.print(itr.next());
System.out.print(", ");
}
System.out.println();
}
public static void main(String[] args) {
List<Integer> s = new ArrayList<Integer>();
for (Integer i = 0; i < 10; i++) {
s.add(i);
}
print(s);
Iterator<Integer> itr = s.iterator();
while (itr.hasNext()) {
Integer i = itr.next();
if (i % 3 == 0) {
itr.remove();
}
}
print(s);
}
}
Ⅳ JAVA中,如何去掉LIST里的重復元素
最好的辦法是用Set,因為Set裡面存放的數據是不重復的。
如果你不想用Set,那還可以向下面這內樣處理容。
List list_tmp = new ArrayList(); //建立一個用於臨時存放不重復list元素的List集合。
for(Object obj:list){
//可以根據需要,在這里加上強制轉型。
//如list裡面存放的是一個User對象,那麼加上User u = (User) obj;
if(!list_tmp.contains(obj)){ //注意contains方法是通過equals方法進行比較的所以你要根據你自己的需要看是否需要重寫list對象裡面的equals方法。
list_tmp.add(obj);//如果上面加了強制轉型,這里需要寫list_tmp.add(u);
}
}
Ⅳ java 怎麼刪除List中的指定元素
主要有三種方法:
用一個List 記錄要刪除的數據,最後removeAll(List);
Ⅵ JAVA:如何刪掉list裡面重復的Map
不知道你為什麼有這種變態需求。如果是作為學習訓練還情有可原,要是你是要實現一個什麼東西不得不這樣,那你就實在是實現的太搓了。用什麼不好,用這么多map,還用list來過濾。
算我無聊,這是代碼,clearList是方法,main是給你寫的一個測試用的例子
public class Test
{
public static void clearList(List<Map<String, String>> list)
{
if (list == null) return;
Set<String> set = new HashSet<String>();
for (Iterator<Map<String, String>> it = list.iterator(); it.hasNext();)
{
//裡面的map至少有一個元素,不然報錯
String value = it.next().entrySet().iterator().next().getValue();
if (set.contains(value))
{
it.remove();
}
else
{
set.add(value);
}
}
}
public static void main(String args[])
{
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map1 = new HashMap<String, String>();
map1.put("1", "abc");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("2", "abdc");
Map<String, String> map3 = new HashMap<String, String>();
map3.put("3", "abc");
list.add(map1);
list.add(map2);
list.add(map3);
clearList(list);
for (Iterator<Map<String, String>> it = list.iterator(); it.hasNext();)
{
String value = it.next().entrySet().iterator().next().getValue();
System.out.println(value);
}
}
}
Ⅶ Java兩個List的過濾問題
packagetest;
importjava.util.ArrayList;
importjava.util.List;
publicclassA1
{
publicstaticvoidmain(String[]args)
{
List<String>list1=newArrayList<String>();
list1.add("JSON--B--TEST");
list1.add("JSON--A--TEST");//deletethisitem
list1.add("JSON--C--TEST");
List<String>list2=newArrayList<String>();
list2.add("B");
list2.add("C");
Stringtemp=list2.toString().replaceAll("[\[\]\s]","").replaceAll("\,","|");
System.out.println(temp);
Stringreg="^.*("+temp+").*$";
for(inti=0;i<list1.size();i++)
{
if(!list1.get(i).matches(reg))
{
list1.remove(i);
}
}
System.out.println(list1.toString());
}
}
Ⅷ java怎樣判斷list集合中存在某個元素
判斷一個元素在集合中很容易,只需要遍歷這個集合,然後與每個值進行比較內,如果有相等的,那麼就存容在在集合中,然後反過來,就是不存在集合中的。
Java是一種可以撰寫跨平台應用程序的面向對象的程序設計語言。Java技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。
它最初被命名為Oak,目標設定在家用電器等小型系統的編程語言,來解決諸如電視機、電話、鬧鍾、烤麵包機等家用電器的控制和通訊問題。由於這些智能化家電的市場需求沒有預期的高,Sun放棄了該項計劃。就在Oak幾近失敗之時,隨著互聯網的發展,Sun看到了Oak在計算機網路上的廣闊應用前景,於是改造了Oak,以「Java」的名稱正式發布。
Ⅸ Java8 使用filter對集合過濾的時候怎麼取到當前的索引即index
以下是indexOf的源代碼,可以看出, 是從0往後找,找到就返回
/**
* Returns the index of the first occurrence of the specified element
* in this list, or -1 if this list does not contain the element.
* More formally, returns the lowest index <tt>i</tt> such that
* <tt>(o==null ? get(i)==null : o.equals(get(i)))</tt>,
* or -1 if there is no such index.
*/
public int indexOf(Object o) {
if (o == null) {
for (int i = 0; i < size; i++)
if (elementData[i]==null)
return i;
} else {
for (int i = 0; i < size; i++)
if (o.equals(elementData[i]))
return i;
}
return -1;
}
Ⅹ java list的重復對象怎麼去除
java list的重復對象,可以使用Set集合類沒有重復的數據的特點,將list的數據存入set裡面,過濾掉重復的數據,如下代碼:
packagecom.qiu.lin.he;
importjava.util.ArrayList;
importjava.util.HashSet;
importjava.util.List;
importjava.util.Set;
publicclassCeshi{
publicstaticvoidmain(String[]args){
List<Integer>li=newArrayList<Integer>();//新建一個list結合
li.add(1);
li.add(2);
li.add(3);
li.add(1);
Set<Integer>se=newHashSet<Integer>();//新建一個set集合
for(Integerinteger:li){
se.add(integer);//過濾重復的數據
}
for(Integerinteger:se){
System.out.println("輸出list數組的去重的每個數據"+integer);
}
}
}
運行結果如下: