Java TreeMap返回键位置

时间:2015-10-13 17:14:38

标签: java treemap

我有这张树图:

<LinearLayout
            android:id="@+id/userInfoHeadrLL"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:paddingLeft="5dip"
            android:paddingRight="10dip"
            android:paddingTop="0dip" >

            <RelativeLayout
                android:id="@+id/userInfoRL"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_marginTop="-50dip"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/IVProfilePicture"
                    android:layout_width="120dp"
                    android:layout_height="120dip"
                    android:layout_alignParentStart="true"
                    android:layout_centerVertical="true"
                    android:background="@null"
                    android:paddingRight="6dip"
                    android:src="@drawable/anonymous_user" />

                <TextView
                    android:id="@+id/TVAmountEarned"
                    style="@style/small_body_text"
                    android:layout_width="wrap_content"
                    android:layout_height="40dip"
                    android:layout_below="@+id/IVProfilePicture"
                    android:layout_marginLeft="42dip"
                    android:gravity="center"
                    android:text="$0.00"
                    android:textColor="@color/grey" />

                <TextView
                    android:id="@+id/TVHolder"
                    style="@style/small_body_text"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_above="@+id/TVFullName"
                    android:layout_toRightOf="@+id/IVProfilePicture"
                    android:paddingBottom="-5dip"
                    android:text="samjaved"
                    android:textColor="@color/blue" />

                <TextView
                    android:id="@+id/TVFullName"
                    style="@style/small_body_text"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_above="@+id/simpleViewAboveTable"
                    android:layout_toRightOf="@+id/IVProfilePicture"
                    android:paddingBottom="0dip"
                    android:text="sami"
                    android:textColor="@color/grey" />

                <View
                    android:id="@+id/simpleViewAboveTable"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_above="@+id/tableUserInfoFollow"
                    android:layout_toRightOf="@+id/IVProfilePicture"
                    android:background="@color/llgrey" />

                <TableLayout
                    android:id="@+id/tableUserInfoFollow"
                    android:layout_width="fill_parent"
                    android:layout_height="45dip"
                    android:layout_centerVertical="true"
                    android:layout_marginBottom="2dip"
                    android:layout_toRightOf="@+id/IVProfilePicture"
                    android:stretchColumns="*" >

                    <TableRow
                        android:layout_width="wrap_content"
                        android:layout_height="45dip" >

                        <LinearLayout
                            android:layout_width="50dp"
                            android:layout_height="wrap_content"
                            android:layout_alignParentLeft="true"
                            android:layout_marginTop="8dip"
                            android:gravity="center"
                            android:orientation="vertical" >

                            <TextView
                                android:id="@+id/textPostedCount"
                                style="@style/small_body_text"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="0" />

                            <TextView
                                android:id="@+id/tvPosted"
                                style="@style/small_body_text"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="-8dip"
                                android:text="Posted" />
                        </LinearLayout>

                        <LinearLayout
                            android:layout_width="50dp"
                            android:layout_height="wrap_content"
                            android:layout_alignParentLeft="true"
                            android:layout_marginTop="8dip"
                            android:gravity="center"
                            android:orientation="vertical" >

                            <TextView
                                android:id="@+id/textFollowersCount"
                                style="@style/small_body_text"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="0" />

                            <TextView
                                android:id="@+id/tvFollower"
                                style="@style/small_body_text"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="-8dip"
                                android:text="Followers" />
                        </LinearLayout>

                        <LinearLayout
                            android:layout_width="50dp"
                            android:layout_height="wrap_content"
                            android:layout_alignParentLeft="true"
                            android:layout_marginTop="8dip"
                            android:gravity="center"
                            android:orientation="vertical" >

                            <TextView
                                android:id="@+id/textFollowedCount"
                                style="@style/small_body_text"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:gravity="center_vertical"
                                android:text="0" />

                            <TextView
                                android:id="@+id/tvFollowed"
                                style="@style/small_body_text"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="-8dip"
                                android:gravity="center_vertical"
                                android:text="Followed" />
                        </LinearLayout>
                    </TableRow>
                </TableLayout>

                <View
                    android:id="@+id/simpleViewBelowLayout"
                    android:layout_width="fill_parent"
                    android:layout_height="1dp"
                    android:layout_below="@+id/tableUserInfoFollow"
                    android:layout_toRightOf="@+id/IVProfilePicture"
                    android:background="@color/llgrey" />

                <TextView
                    android:id="@+id/TVbio"
                    style="@style/small_body_text"
                    android:layout_width="fill_parent"
                    android:layout_height="200dip"
                    android:layout_below="@+id/simpleViewBelowLayout"
                    android:layout_marginTop="2dp"
                    android:layout_toRightOf="@+id/IVProfilePicture"
                    android:paddingBottom="0dip"
                    android:text="bio will go here sahsakjhdjahdjhdjhdjsahdjhahahdjhdsjhdajhdsjhdskjhakjhdskjashjkasjk" />
            </RelativeLayout>
        </LinearLayout>

如何搜索密钥并返回该密钥的索引示例:

Map teamNameAndLeague = new TreeMap();

teamNameAndLeague.put("team1", "name1");
teamNameAndLeague.put("team2", "name2");
teamNameAndLeague.put("team3", "name3");

我有这个:

search for key: "team1" in teamNameAndLeague, Returns index: 1

它返回此键的索引,但用于搜索键值。我怎样才能做出类似的东西,而是搜索关键

1 个答案:

答案 0 :(得分:0)

TreeMap不使用索引;它是一棵树,而不是一个线性序列。如果您想要下订单,您可以这样做。

为此,您必须为键提供比较器(Comparator将执行的默认字符串,如果您愿意),将列表排序为数组,然后索引数组,就像您已使用值发布的那样。但请注意,这会忽略树结构。请参阅http://java2novice.com/java-collections-and-util/treemap/basic-comparator/

中的示例

另外,请注意页面底部的链接列表:这些链接将引导您完成基本的TreeMap操作。

另一种方法是使用键中的“set”对象teamNameAndLeague.keySet;这也忽略了树的结构。