㈠ 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裡面重復的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裡面如果選擇了JList的值,再按其他按鈕的時候怎麼把之前選的這個JList項清除掉
分析: 1: 清除JList選中的項目,可以使用setSelectedIndices方法實現
JList1.setSelectedIndices(newint[]{});//設置選擇的條目為沒有.用1個空白數組表示
//jlist1.setSelectedIndices(newint[]{0,1});//這就表示選擇的條目為第1和第2個
分析:2 : 可以設置1個焦點響應事件. 當JList失去焦點時,使用上面的方法,清除掉所有選擇
完整的參考代碼
importjava.awt.*;
importjava.awt.event.FocusEvent;
importjava.awt.event.FocusListener;
importjavax.swing.*;
importjavax.swing.event.*;
{
JTextFieldjtf;
JList<String>jlist1;
JTextAreajta;
staticfinalString[]CP={"青椒土豆絲","西紅柿炒雞蛋","麻辣小龍蝦","魚香肉絲","西湖醋魚","紅湯老火鍋","可樂","茉莉花茶"};
publicMenuFrame(){
JPaneljpCenter=newJPanel(newGridLayout(1,2));
jlist1=newJList<String>(CP);
jlist1.addListSelectionListener(this);
jlist1.addFocusListener(newFocusListener(){//給JList添加1個焦點響應事件
@Override
publicvoidfocusLost(FocusEvente){//失去焦點時執行的方法
jlist1.setSelectedIndices(newint[]{});//設置選擇的條目為沒有.用1個空白數組表示
//jlist1.setSelectedIndices(newint[]{0,1});//這就表示選擇的條目為第1和第2個
}
@Override
publicvoidfocusGained(FocusEvente){//獲得焦點時,執行的方法
//TODOAuto-generatedmethodstub
}
});
JScrollPanejsp1=newJScrollPane(jlist1);//滾動面板
jsp1.setBorder(BorderFactory.createTitledBorder("全部菜品"));//帶標題的邊框
jpCenter.add(jsp1);
jta=newJTextArea(5,30);
jta.setLineWrap(true);
JScrollPanejsp2=newJScrollPane(jta);
jsp2.setBorder(BorderFactory.createTitledBorder("已選菜品"));
jpCenter.add(jsp2);
add(jpCenter);
setTitle("點菜");
setSize(300,200);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
publicstaticvoidmain(String[]args){
newMenuFrame();//啟動窗口
}
publicvoidvalueChanged(ListSelectionEvente){
if(e.getValueIsAdjusting()){
jta.append(jlist1.getSelectedValue()+",");
}
}
}
效果圖
㈣ java對List去重並排序,如何快速地去掉兩個
Java8開始,對數值,集昌並廳合等提供了Stream流操作,可以方便的對集合進行操作.
比如 篩選,過濾,去重, 映射, 排序,規約,收集 等操作
簡單的參考代碼如下
importjava.util.Arrays;
importjava.util.List;
importjava.util.stream.Collectors;
//使用Java8的Stream特性和Java8的Lambda語句
publicclassDemo{
publicstaticvoidmain(String[]args){
//需求:集合去重,排序,得到一個新集耐隱合裡面的元素是之前元素的平方
List<Integer>list=Arrays.asList(5,2,2,1,3,4);
List<Integer>listResult= list
.stream()//得到流
.distinct()//去重蔽爛5,2,1,3,4
.sorted()//自然排序,也可以自定義排序規則1,2,3,4,5
.map(x->x*x)//每個元素求平方1,4,9,16,25
.collect(Collectors.toList());//收集並返回
System.out.println(listResult);//1,4,9,16,25
}
}
㈤ java 怎麼刪除List中的指定元素
主要有三種方法:
用一個List 記錄要刪除的數據猛閉,最後removeAll(List);梁知李
㈥ java中如何將list集合清空
java中將集合清空可以用clear方法。
下面演示用法,代碼如下
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);
}
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中不包含的元素