㈠ 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中不包含的元素