❶ java8中如何動態遍歷動態多維數組
有兩種實現方法:
可以用List數組來實現
可以用map來實現
方法一:用map來實現
比如要創建一個1行、3列的數組,實現方法如下:
public static void main(String[] args) throws CloneNotSupportedException { Map<Double, List<Double>> myMap = create(1, 3);}public static Map<Double, List<Double>> create(double row, double column) { Map<Double, List<Double>> doubleMap = new HashMap<Double, List<Double>>(); for (double x = 0; x < row; x++) { for (double y = 0; y < column; y++) { doubleMap.put(x, new ArrayList<Double>()); } } return doubleMap;}
方法二:
可以用List數組來實現
publicstaticvoidmain(Stringargs[]){
//list作為動態二維數組
List<List<String>>list=newArrayList();
List<String>a1=newArrayList<String>();
List<String>a2=newArrayList<String>();
List<String>a3=newArrayList<String>();
list.add(a1);
list.add(a2);
list.add(a3);
a1.add("string1ina1");
a1.add("string2ina1");
a2.add("string1ina2");
a3.add("string1ina3");
a3.add("string2ina3");
for(inti=0;i<list.size();++i){
for(intj=0;j<list.get(i).size();++j)
System.out.println(list.get(i).get(j));
}
}
❷ java8 怎麼一次遍歷兩個list
List<Integer> l1 = new ArrayList<>();
l1.add(1);
l1.add(2);
l1.add(3);
l1.add(4);
List<Integer> l2 = new ArrayList<>();
l2.add(5);
l2.add(6);
l2.add(7);
l2.add(8);
Stream.of(l1, l2).flatMap(n -> n.stream()).filter(n->n%2==0).forEach(System.out::println);
❸ 求助大神:java中現有一個list要取出list中所有元素拼接成字元串以逗號隔開應該如何做
1、java">public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
String str = "";
for(int i=0;i<list.size();i++){
str += list.get(i)+",";
}
System.out.println(str);
❹ java8 怎樣將map轉換成list
Map與List是兩種不同的數據類型,不能直接轉換,要說明具體的需求,比如Map中的key和value與List如何對應。
❺ Java中如何去除List中的重復的值
屬性是????
先給你一個看看是不是你需要的好了,
//利用Set的特性,將所有項目放入Set
//中即可移除重復的項目
Set<String>stringSet=newHashSet<String>();
for(Stringelement:plicateArray){
stringSet.add(element);
}
//Set.size()為不重復項目的個數
StringnonDuplicateArray[]=newString[stringSet.size()];
//將Set中的項目取出放到nonDuplicateArray中
Object[]tempArray=stringSet.toArray();
for(inti=0;i<tempArray.length;i++){
nonDuplicateArray[i]=(String)tempArray[i];
}
❻ java8中,兩個list<map>集合如何合並
這個簡單呀,集合的長度是可變的,你把要合並的集合遍歷出來,add( )添加到目標集合里就行了。
❼ JAVA怎麼取多個List集合的交集
1、把多個list放到一個list中,生成 List<List<Object>>結構
2、遍歷list,使用java8的規約操作,兩兩求交集
list.stream().rece((list1,list2) -> { list1.retainAll(list2); return list1;}).orElse(emptyList());
❽ java8 遍歷數組的幾種方式
list集合的遍歷3種方法:
[java] view plain
package com.sort;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* list的三種遍歷
* @author Owner
*
*/
public class ListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("c");//可添加重復數據
//遍歷方法一
for(Iterator<String> iterator = list.iterator();iterator.hasNext();){
String value = iterator.next();
System.out.println(value);
}
//遍歷方法二
for(String value : list){
System.out.println(value);
}
//遍歷方法三
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
三種遍歷的比較分析:
方法一遍歷:
執行過程中會進行數據鎖定, 性能稍差, 同時,如果你想在循環過程中去掉某個元素,只能調用it.remove方法。
方法二遍歷:
內部調用第一種
方法三遍歷:
內部不鎖定, 效率最高, 但是當寫多線程時要考慮並發操作的問題
List介面的兩種主要實現類ArrayList和LinkedList都可以採用這樣的方法遍歷
關於ArrayList與LinkedList的比較分析
a) ArrayList底層採用數組實現,LinkedList底層採用雙向鏈表實現。
b) 當執行插入或者刪除操作時,採用LinkedList比較好。
c) 當執行搜索操作時,採用ArrayList比較好。
❾ java里有沒有專門判斷List里有重復的數據
List是有序的可重復集合, 如果要判斷list中是否有一個元素 , 可以用 list.contains(obj)
如果只是為了判斷list中是否有重復 , 方法有很多種, 比如可以將list轉換為set
Set set = new HashSet<>(list);
set是無需不可重復的集合 , list轉成set之後 , 如果set的size比 list的size小 , 說明有重復元素
也可以遍歷list , 放入Map , 用list的泛型作為 map 的 key 類型 , 而出現的次數作為 map的value , 這樣就能很容易看出來 list中的元素有沒有重復 , 哪個有重復 , 重復了幾次