精华内容
下载资源
问答
  • TreeSet添加字符串,按照字符串首字母字母顺序和字符串长度顺序排序
  • split(String regex) 根据给定正则表达式的匹配拆分此字符串。返回字符串数组 length() 返回此字符串的长度。 3、Integer类 static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析。 二、代码...

    一、使用类

    1、TreeSet类

    • add(E e) 将指定的元素添加到此 set

    2、String类

    • split(String regex) 根据给定正则表达式的匹配拆分此字符串。返回字符串数组

    • length() 返回此字符串的长度。

    3、Integer类

    • static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析。

    二、代码

    import java.util.TreeSet;
    
    //需求:将字符串中的数值进行排序
    //eg: String str = "8 10 15 5 2 7"排序为 2 5 7 8 10 15
    
    public class TreeSet练习
    {
        public static void main(String[] args)
        {
            String str = "8 10 15 5 2 7";
            TreeSet tree = new TreeSet();
            String[] substr = str.split(" ");
            for(int i=0;i<substr.length;i++)
            {
                //字符串转为int类型数值需要使用Integer.parseInt([String])方法
                //如果不转换为int型,则add的时候会用String类型的compareto方法,会出现10比2小的情况
                tree.add(Integer.parseInt(substr[i]));
            }
            System.out.println(tree);
        }
    }
    
    

    三、截图

    这里写图片描述

    若用  tree.add(substr[i])
    而不用 tree.add(Integer.parseInt(substr[i]))

    即:不将string转换为int型数值,则出现:

    这里写图片描述

    原因:

    TreeSet是可以对字符串进行排序的, 因为字符串已经实现了Comparable接口。

    字符串的比较规则:

    情况一:对应位置有不同的字符出现, 就比较的就是对应位置不同的字符。
    如:"abc"与"aw"比较,第1位a一样,则比较第2位,发现b比w小,则判定"abc"小于"aw"
    
    情况二:对应位置上的字符都一样,比较的就是字符串的长度。
    如:"abc"与"abcccc"比较,前3位一样,发现abcccc比abc长,则判定"abc"小于"abcccc"
    
    展开全文
  • TreeSet对String的排序

    2020-10-06 20:44:49
    TreeSet集合中的元素:无序不可重复,但是可以按照元素大小顺序自动排序 TreeSet集合放进去无序,拿出来有序 package collection; import java.util.TreeSet; public class TreeSetTest02 { public static void ...
    • TreeSet集合底层是一个TreeMap
    • TreeMap集合底层是一个二叉树
    • 放到TreeSet集合中的元素等同于放到TreeMap集合key部分
    • TreeSet集合中的元素:无序不可重复,但是可以按照元素大小顺序自动排序
    • TreeSet集合放进去无序,拿出来有序
    package collection;
    
    import java.util.TreeSet;
    
    public class TreeSetTest02 {
        public static void main(String[] args) {
            //创建一个treeset集合
            TreeSet<String> ts = new TreeSet<>();
            //添加String
            ts.add("zhangsan");
            ts.add("ls");
            ts.add("ww");
            ts.add("zl");
            for (String s : ts) {
                System.out.println(s);
                // ls ww zhangsan zl
            }
    
            TreeSet<Integer> ts2 = new TreeSet<>();
            ts2.add(123);
            ts2.add(2134466);
            ts2.add(235125);
            ts2.add(45);
            for (int i : ts2 ) {
                System.out.println(i); // 45 123 235125 2134466
            }
        }
    }
    
    
    展开全文
  • 对字符串进行长度从短到长的排序。 1.说起排序,选TreeSet。 2. 注意复写的compare。 import java.util.Comparator; public class CompareByLength implements Comparator { @Override public int compare...

    对字符串进行长度从短到长的排序。

    1.说起排序,选TreeSet。 

    2. 注意复写的compare。

    import java.util.Comparator;
    public class CompareByLength implements Comparator {
    
    	@Override
    	public int compare(Object o1, Object o2) {
    		String s1=(String)o1;
    		String s2=(String)o2;
    		int temp=s1.length()-s2.length();
    		//return temp;//这样写得话,输出后确实是按从短到长排序了,但是会失去一些,因为其认为长度一样就一样,不会存入,所以会丢失。
    	    
    		return temp==0?s1.compareTo((s2)):temp;
    	}	
    }
    
    //*******************************************************************************
    import java.util.*;
    public class TreeSetTest {
    
    	public static void main(String[] args) {
    		Set set=new TreeSet(new CompareByLength());
    		
    		set.add("erfs");
    		set.add("sew");
    		set.add("adddda");
    		set.add("nana");
    		set.add("haha");
    		for (Iterator it = set.iterator(); it.hasNext();) {
    			System.out.println(it.next());	
    		}	
    	}
    }
    
    
    结果:
    sew
    erfs
    haha
    nana
    adddda
    

    展开全文
  • TreeSetTest.java import java.util.Comparator; import java.util.Set;...import java.util.TreeSet; public class TreeSetTest { public static void main(String[] args) { Comparator&lt;String&gt;...

    TreeSetTest.java

    import java.util.Comparator;
    import java.util.Set;
    import java.util.TreeSet;
    
    public class TreeSetTest {
        public static void main(String[] args) {
            Comparator<String> cp = new StringCompare();
            Set<String> set = new TreeSet<>(cp);
            set.add("HashSet");
            set.add("ArrayList");
            set.add("TreeMap");
            set.add("HashMap");
            set.add("TreeSet");
            set.add("LinkedList");
    
        for(String s:set){
            System.out.println(s);
        }
    }
    }
    

    StringCompare.java

    import java.util.Comparator;
    
    public class StringCompare implements Comparator<String>{
        @Override
        public int compare(String o1, String o2) {
            // int compareTo(String anotherString)  按字典顺序比较两个字符串。 
            return -o1.compareTo(o2);
        }
        }
    
    注意:compareTo是String的方法。

    compareTo:按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0。

    展开全文
  • 具体实现:package ...import java.util.Comparator; import java.util.Iterator; import java.util.Set; import java.util.TreeSet;/** * 定义比较器 * @Title: Tester.java * @Package cn.wong.
  • public static void TreeSetsort(String s) ... TreeSet<Character> set =new TreeSet<Character>(); char cs[] = s.toCharArray(); for(int i=0;i<cs.length;i++) { set.add(cs[i])...
  • class hello { public static void main(String[] args) throws ParseException { Scanner sc = new Scanner(System.in); String s = sc.nextLine();... TreeSet&lt;Character&g...
  • 按照字符串的长度排序字符串本身具备比较性,但是它的比较方式不是所需要的。 这时就只能使用比较器。 */ import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; public ...
  • TreeSet ts = new TreeSet(collect);//这里是关键点 ts.comparator(); System.out.println(ts); } } //下面中的一些方法为了节省时间,copy曾经写过的代码改的,有些完全没有存在的必要,下个toy program会...
  • import java.util.Iterator;.../* * 给字符串中的数字排序 * String str = "10,2,11,1,34,101,32"; */public class Demo7 { public static void main(String[] args){ String str = "10 2 11 1 34 1...
  • 要求:使用TreeSet集合实现字符串按照长度进行排序 //创建集合,并指定比较规则 TreeSet<String> treeSet=new TreeSet<>(new Comparator<String>() { @Override public int compare(String o...
  • 包含数字的字符串排序

    千次阅读 2018-04-18 16:51:07
    一, Idea的起因 由于日志采集项目有种叫做轮转文件的东西, 大致解释就是有一个 a.log, 系统不停... 会发现, 某个目录地下有 如下图的东西 这时候, 我需要这些日志进行一个排序, 那么, 如何做到, 排序的合法性?...
  • 排序字符串的时候只返回字符串长度不考虑字符串相同长度的话,会导致相同长度字符串无法写入,录入TreeSet,因为它判定相同长度为重复元素,不给写入! 懒狗示范: TreeSet<String> set = new TreeSet<>...
  • 需要实现Comparable接口,并重写comparaTo方法,写出要排序的规则,比如说按字符串长度排序,还是按字母表的顺序排序,都得自己在里面实现。 以下是两个小程序,分别实现的功能有: 1.在一个集合中存储了无序并且...
  • TreeSet的自然排序

    2019-09-24 16:56:38
    /*TreeSet: * 1.向 TreeSet中添加的元素...当向TreeSet中添加自定义类的对象时,有两种排序方法:①自然排序②定制排序 * 4.自然排序:要求自定义类实现java.lang.Comparable接口并重写其compareTo(Object o)抽象方...
  • TreeSet comparator字符串长度排序 package com.Set; import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; /** * TreeSet 存储字符串 根据字符串长度排序 * @author 小明 *...
  • /*对字符串进行长度排序,使用treeset 思路: 字符串都是对象,可以先存储到集合中 还要对字符串进行排序,所以选择带排序的集合treeset 字符串本身具备自然排序,是按照字典顺序 但是和所需要求不符,这时就...
  • import java.util.*; class TreeSetComparatorDemo { public static void main... //使用比较器来实现TreeSet集合按长度排序 TreeSet ts = new TreeSet(new StrLenComparator()); ts.add("aaaa"); ts.add
  • TreeSet排序规则

    2017-06-01 20:47:10
    TreeSet在存放对象元素的时候就会排序。因此在存放完之后,结合中的元素进行修改,那么修改也不会影响原先的排序。如果存放进去的对象没有实现 Comparable接口就会抛出异常。直接上代码: public class ...
  • package test_set_map; import java.util.Iterator;...import java.util.TreeSet; public class Test_Tree { /** * @param args * * String demos[]={"hello","donghongyu","test","中国"};//排序
  • 字符串 treeset 转化

    千次阅读 2016-09-09 14:19:38
    package com.conpany.treeset;import java.util.Iterator; import java.util.TreeSet;public class Demo2 { public static void main(String[] args) { String str=”2 10 15 7 8”...//要按字符串大小排序 //先取
  • 3.字符串中每个字符出现的次数统计 import java . util . HashMap ; public class CharCount { public static void main ( String [ ] args ) { String str = "aababcabcdabcde" ; ...
  • Java日期字符串排序

    千次阅读 2016-12-01 15:35:08
    一、示例代码class test { public static void main (String[] args) throws java.lang.Exception { TreeSet<String> dates = new TreeSet(); dates.add("2016-10-20"); dates.a
  • TreeSet字典顺序排序

    千次阅读 2016-04-10 22:22:38
    package com.heima.test;import java.util.Comparator; import java.util.TreeSet;public class Test11 { /**TreeSet字典顺序排序 * @param args */ public static void main(String[] args) { Tr
  • java对字符串进行去重并排序

    万次阅读 2016-07-20 20:06:56
    分析:这题涉及到java输入数组的去重和排序,方法有如下两种 方法一:首先输入的一组数进行排序,使相同的数相邻。然后从前往后两两比较相邻的数,将各个数存入结果数组,相同的数则跳过。代码如下: import ...
  • TreeSet的两种排序方式

    万次阅读 多人点赞 2016-11-12 20:43:11
    由于TreeSet可以实现元素按照某种规则进行排序,例如下面的例子public class TreeSetDemo { public static void main(String[] args) { // 创建集合对象 // 自然顺序进行排序 TreeSet ts = new TreeSet(); ...
  • TreeSet练习 按传入字符串长度排序 ...因为字符串类是Java定义好的,无法其compareTo进行复写,因此只能用指定器的方式设置排序方式。 import java.util.Iterator; import java.util.TreeSet; import jav...
  • } } 使用Lambda表达式排序集合 public class LambdaTest { @Test public void test1() { // method 1 Comparator<String> com1 = (o1, o2) -> -o1.compareTo(o2); Set<String> set1 = new TreeSet(com1); set1.add...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,446
精华内容 8,978
关键字:

treeset对字符串排序