① java中如何返回多個list
方法一、將多個List封裝到一個JavaBean內:
private static void show1() {
StringEQTest.ListArr listArr = new StringEQTest.ListArr();
List<String> names = listArr.names;
for (int i = 0; i < names.size(); i++) {
System.out.println(names.get(i));
}
List<Integer> ages = listArr.ages;
for (int i = 0; i < ages.size(); i++) {
System.out.println(ages.get(i));
}
}
public static class ListArr {
List<String> names = new ArrayList<String>();
List<Integer> ages = new ArrayList<Integer>();
public ListArr() {
names.add("names1");
names.add("names2");
names.add("names3");
ages.add(50);
ages.add(40);
ages.add(30);
ages.add(88);
}
public List<String> getNames() {
return names;
}
public void setNames(List<String> names) {
this.names = names;
}
public List<Integer> getAges() {
return ages;
}
public void setAges(List<Integer> ages) {
this.ages = ages;
}
}
結果:
names1
names2
names3
50
40
30
88
-------------------------------------------------------------------------------
方法二、將List包裝到Map集合內,取出的時候需要進行類型轉換
private static void show2() {
Map<String, Object> lists = getLists();
List<String> names = (List<String>) lists.get("names");
for (int i = 0; i < names.size(); i++) {
System.out.println(names.get(i));
}
List<Integer> ages = (List<Integer>) lists.get("ages");
for (int i = 0; i < ages.size(); i++) {
System.out.println(ages.get(i));
}
}
public static Map<String, Object> getLists() {
List<String> names = new ArrayList<String>();
List<Integer> ages = new ArrayList<Integer>();
names.add("names1");
names.add("names2");
names.add("names3");
ages.add(50);
ages.add(40);
ages.add(30);
ages.add(88);
Map<String, Object> map = new HashMap<String, Object>();
map.put("names", names);
map.put("ages", ages);
return map;
}
結果:
names1
names2
names3
50
40
30
88
② 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);
}
}
}
運行結果如下:
③ java把一個list中的內容添加到另一個list中
在JAVA中,想要把一個list中的內容添加至另一個list中,有兩種方法:
採用循環的方法。通過循環第一個ArrayList,然後通過每循環一次的方式,將值賦值給另一個ArrayList。具體代碼實現如下:
2.集合是Java API所提供的一系列類,可以用於動態存放多個對象。集合與數組的不同在於,集合是大小可變的序列,而且元素類型可以不受限定,只要是引用類型。集合中不能放基本數據類型,但可以放基本數據類型的包裝類。 集合類全部支持泛型,是一種數據安全的用法。java列表是集合的一種,並且列表中的元素是有序的,且允許重復。java列表又稱為java list。
④ 在JAVA中,兩個List,要從第一個List中去除所有第二個List中與之重復的元素
將List2轉為Map,Employee屬性作為key,對象為value,循環list1判斷key是否在Map中 有就移除
⑤ java中操作多個List
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Stack;
import java.util.Vector;
public class Lession6 {
public static void main(String[] args)
{
// 下面是List裡面常用的實現類
// 大小可變列表的實現,允許任何數據加入
ArrayList arrayList = new
ArrayList();
// 同樣是大小可變列表的實現.
//
與ArrayList的最大區別就是這個類的方法是同步(synchronized)的
// 詳細的區別,請參考
// 看源代碼理解ArrayList和Vector 的真正區別
// http://www.java2000.net/p9750
Vector vector = new Vector();
// 實現了雙向隊列的控制,包括頭尾的操作
// 可用於堆棧和FIFO操作等
LinkedList linkedList = new
LinkedList();
// 集成自 Vector
// 提供了LIFO的堆棧操作方式
Stack stack = new Stack();
// -----------------
// 下面以ArrayList作為例子,看看列表的各個方法
List list = new ArrayList();
// 構建第二個列表
List list2 = new ArrayList();
// 向列表的尾部添加指定的數據
list.add(123);
// 在列表的指定位置插入指定數據
// 我們在最前面插入數據
// 列表的位置索引從0開始
list.add(0, 456);
// 將list2裡面的數據,全部放到list1的尾部去
// 注意此處可以是任何集合類,不限於列表
list.addAll(list2);
// 將list2裡面的數據,全部放到list1指定位置的後面
// 等於插入一段數據
list.addAll(2, list2);
// 清空列表,刪除裡面所有的數據
list.clear();
// 判斷列表裡是否包含某個數據
boolean found = list.contains(123);
// 判斷列表是否包含了另一個集合的所有數據
// 注意此處可以是任何集合類,不限於列表
boolean ok =
list.containsAll(list2);
// 獲得指定位置的數據
// 如果位置超過了列表的范圍 0 到 list.size()-1
// 則拋出異常:IndexOutOfBoundsException
Object obj = list.get(3);
// 得到數據在列表中的位置
// 如果沒找到,返回-1
// 位置索引從0開始
int index = list.indexOf(456);
// 判斷列表是不是空的
boolean empty = list.isEmpty();
// 列表的迭代器操作
// 順序嚴格按照列表的保存的順序
Iterator it = list.iterator();
// 得到數據在列表最後一次出現的位置
// 適合於有重復數據的列表
index = list.lastIndexOf(456);
// 列表的另一個迭代器
ListIterator listIT =
list.listIterator();
// 列表的另一個迭代器,可以指定起始位置
ListIterator listIT2 =
list.listIterator(3);
// 刪除某個位置的數據
list.remove(3);
// 刪除指定對象的第一個出現的位置
// 注意,如果是整數,要區分其與remove(int)的區別
// 建議用 remove(new Integer(123));
來刪除數據對象
list.remove(new Integer(123));
// 刪除列表裡在另一個集合里存在的數據
list.removeAll(list2);
// 只保留在另一個集合里存在的數據,等於交集
list.retainAll(list2);
// 替換指定位置的數據
list.set(3, 999);
// 列表數據的數量
int size = list.size();
// 得到一個子數組
List subList = list.subList(2, 10);
// 將集合轉化為數組
Object[] objs = list.toArray();
// 將集合轉化為指定格式的數組
// 比如集合里保存的都是String
String[] objs2 = (String[])
list.toArray(new String[0]);
}
}
⑥ java中怎麼把一個集合分成多個集合
List list1 = new ArrayList(); list1.add("a");list1.add("b"); List list2 = Arrays.asList("c","d"); list1.addAll(list2); System.out.println(list1);
⑦ Java List集合
有兩種辦法,一種是加上 public 標簽,把你的 names 變成公共的!
第二種辦法是加上 get 方法!
如: public ArrayList getNames (){
return names;
}
返回names的值!
JavaBean 的正規寫法,當然是第二種的,第一種沒有安全性可言,不要用!
⑧ java 從幾十萬條數據的list集合中隨機取出1000個元素重新生成集合
List<String> list = new ArrayList<String>();
List<String> new_list = new ArrayList<String>();
for (int i = 0 ; i < 1200000;i++)
{
list.add(i+"");
}
long time1 = System.currentTimeMillis();
Collections.shuffle(list);
new_list = list.subList(0,1000);//方法1耗時65~130
new_list = createRandomList(list,1000);//方法2耗時2~5
long time2 = System.currentTimeMillis();
System.out.println(time2 - time1);
private static List createRandomList(List list, int n)
{
Map map = new HashMap();
List listNew = new ArrayList();
if (list.size() <= n)
{
return list;
}
else
{
while (map.size() < n)
{
int random = (int) (Math.random() * list.size());
if (!map.containsKey(random))
{
map.put(random, "");
listNew.add(list.get(random));
}
}
return listNew;
}
}
這個方法測試
⑨ Java兩個List的過濾問題
packagetest;
importjava.util.ArrayList;
importjava.util.List;
publicclassA1
{
publicstaticvoidmain(String[]args)
{
<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集合的交集
1、把多個list放到一個list中,生成 List<List<Object>>結構
2、遍歷list,使用java8的規約操作,兩兩求交集
list.stream().rece((list1,list2) -> { list1.retainAll(list2); return list1;}).orElse(emptyList());