Java List中取出前100的数据并且删除掉

如题所述

java List中取出前100的数据并且删除掉,遍历list集合,把数据取出存到新集合,再删除掉,如下方法:

package com.test;

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

public class TestA {


public static void main(String[] args) {
//定义集合
List<String> list=new ArrayList<String>();
//给集合存150个值
for(int x=1;x<=101;x++){
list.add("a"+x);
}
System.out.println("原集合内容:"+list);
List<String> list2=new ArrayList<String>();

//循环获取和移除掉100值
for(int x=0;x<1;x++){
//获取
String a=list.get(x);
list2.add(a);
//移除
list.remove(a);
//list2集合够100则跳出循环
if(list2.size()==100){

break;
}
//移除掉list集合一个元素,长度减一,标量应该不变所以减一,后面会x++
x--;

}
System.out.println("取出的100值:"+list2);
//输出剩下的值
System.out.println("剩下的list值:"+list);
}

}

运行结果:
原集合内容:[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, a71, a72, a73, a74, a75, a76, a77, a78, a79, a80, a81, a82, a83, a84, a85, a86, a87, a88, a89, a90, a91, a92, a93, a94, a95, a96, a97, a98, a99, a100, a101]
取出的100值:[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, a71, a72, a73, a74, a75, a76, a77, a78, a79, a80, a81, a82, a83, a84, a85, a86, a87, a88, a89, a90, a91, a92, a93, a94, a95, a96, a97, a98, a99, a100]
剩下的list值:[a101]

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-18
package com.cn.qy.util;

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

public class aa {
@SuppressWarnings("unchecked")
public static void main(String args[]){

@SuppressWarnings("rawtypes")
List <String> list = new ArrayList<String>();
for(int i=0;i<200;i++){
list.add(i+"");
}
list = list.subList(100, list.size());
for(String s :list){
System.out.println("删除后的数据:"+s);
}
}
}

根据问题,集合list中取出前100条删除掉,即是只保留 第101条往后的数据,List 底层是数组,可以采用截取的方式来获取,如果一个个remove的话几百几千条数据还行,如果百万级数据很耗资源的,所以这里采用了截取集合的方式

第2个回答  2018-04-08

java List中取出前100的数据并且删除掉,遍历list集合,把数据取出存到新集合,再删除掉,如下方法:

package com.test;

import java.util.ArrayList;

import java.util.List;

public class TestA {

public static void main(String[] args) {

//定义集合

List<String> list=new ArrayList<String>();

//给集合存150个值

for(int x=1;x<=101;x++){

list.add("a"+x);

}

System.out.println("原集合内容:"+list);

List<String> list2=new ArrayList<String>();

//循环获取和移除掉100值

for(int x=0;x<1;x++){

//获取

String a=list.get(x);

list2.add(a);

//移除

list.remove(a);

//list2集合够100则跳出循环

if(list2.size()==100){

break;}

//移除掉list集合一个元素,长度减一,标量应该不变所以减一,后面会x++

x--;}

System.out.println("取出的100值:"+list2);

//输出剩下的值

System.out.println("剩下的list值:"+list);}

本回答被网友采纳
第3个回答  2011-11-03
import java.util.ArrayList;
import java.util.List;
public class test {
public static void main(String[] args) {
List list=new ArrayList();
List list1=new ArrayList();
int i=0;
for(i=0;i<102;i++){
list.add(i);
}
System.out.println(list.size());
for(i=0;i<100;i++){
list1.add(i);
}
for(i=0;i<list.size();i++){
for(int j=0;j<list1.size();j++){
if(list.get(i)==list1.get(j)){
list.remove(i);
}
}
}
for(i=0;i<list.size();i++){
System.out.println("--------"+list.get(i));
}
}
}

输出结果:
102
--------100
--------101
第4个回答  2011-11-03
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 300; i++) {
list.add(i);
}
List<Integer> beforeList = new ArrayList<Integer>();
List<Integer> afterList = new ArrayList<Integer>();
if (list != null && list.size() > 100) {
beforeList.addAll(list.subList(0, 100));
afterList.addAll(list.subList(100, list.size()));
}
System.out.println(list);
System.out.println(beforeList);
System.out.println(afterList);本回答被网友采纳
相似回答